您好,我正在尝试将应用程序上传到我的 iPad,(iOS 5.1) - 越狱,
它是一个网络搜索应用程序,我正在使用私有(private) API,据我所知,我需要将我的应用程序的构建版本放在设备 /Applications
文件夹中!
(假设我已经弄清楚了流程,使用 cyberduck)
到目前为止一切顺利,一切正常!
但每次我更新我的应用程序代码时,我需要替换哪些文件?
只有 /Applications
目录中的那些或者还有 /User/Applications/
中的那些。 . . ?
每次我更新我的代码时,atm 似乎代码都不会更新,直到我重新启动设备
在我重新启动之前,我通过 Xcode 收到以下错误:
A system application with the given bundle identifier is already installed on the device and cannot be replaced.
请帮忙
最佳答案
仅仅因为您使用私有(private) API 并不意味着您总是需要在 /Applications
中安装该应用程序。这取决于哪些私有(private) API 以及您要执行的操作。系统应用程序和通过 Cydia 分发的应用程序通常会安装在 /Applications
中。正常的第 3 方 App Store 应用程序(我们的)安装在 /var/mobile/Applications
下(/User/Applications
是指向 /var/mobile/的链接应用程序
,所以这两个位置相同)。
因此,默认情况下,Xcode 不会在/Applications 中安装应用程序。它会在 /var/mobile/Applications
下的某处安装应用程序。
如果您手动将您的应用程序放入 /Applications
,然后尝试从 Xcode 构建并再次运行它,Xcode 将在 /Applications/MyAppName.app
中看到该版本>,即使它试图安装到 /var/mobile/Applications/*/MyAppName.app
,它也会根据包标识符(在应用程序的信息中指定)识别出冲突。 plist 文件)。
因此,您不能在 /Applications
和 /var/mobile/Applications
中安装具有相同包标识符的应用程序。我会选择你想要的地方。
如果您想要在 /Applications
中安装您的应用程序,请使用脚本来安装它(例如,使用 SFTP)。如果您希望您的应用程序位于 /var/mobile/Applications
中,那么您可以直接从 Xcode 构建并运行。
至于需要重启,那应该是没有必要的。您可能需要 ssh
进入您的设备,并发出 uicache
命令:
ssh mobile@iphone
uicache
或
ssh root@iphone
su mobile -c uicache
让 SpringBoard 识别新安装的应用程序。如果您直接从 Xcode 运行则没有必要,但如果您从 Xcode 构建,然后运行 (SFTP) 安装脚本,那么您可能需要运行 uicache
。
希望这对您有所帮助。
编辑:我没有涉及编写要从 Xcode 中调用的自定义构建后脚本/步骤的问题。因此,当我在上述回答中提到从 Xcode 运行时,我指的是 Xcode 工作的默认模式。
关于ios - Xcode-通过SFTP上传应用程序到iOS设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12607914/