仅仅因为您使用私有 API 并不意味着您总是需要在/Applications
. 这取决于哪些私有 API 以及您要执行的操作。系统应用程序和通过 Cydia 分发的应用程序通常安装在/Applications
. 普通的 3rd-party App Store 应用程序(我们的)安装在/var/mobile/Applications
(/User/Applications
是指向 的链接/var/mobile/Applications
,所以这两个是相同的位置)。
因此,默认情况下,Xcode 不会在 /Applications 中安装应用程序。它会将应用程序安装在/var/mobile/Applications
.
如果您手动将应用程序放入/Applications
,然后尝试从 Xcode 再次构建并运行它,Xcode 将在 中看到版本/Applications/MyAppName.app
,即使它试图安装到/var/mobile/Applications/*/MyAppName.app
,它也会根据捆绑标识符(在应用程序的 Info.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 工作的默认模式。