【发布时间】:2015-11-27 21:49:47
【问题描述】:
我有一个带有两个可执行目标的 XCode 项目,我将它们用于我自己的工作(也就是说,我不出售或发布应用程序,但它们对我来说仍然很重要),这取决于一个外部项目。到目前为止,构建应用程序并安装到 /Applications 文件夹中没有问题。我所做的是进入命令行并输入:
sudo xcodebuild -scheme Trainer install
这会将目标 Trainer 安装到 Applications 文件夹中,并且可以从那里运行应用程序。如果我尝试使用 -target Trainer 指定目标,它将不起作用,因为它不会在外部项目中找到依赖项。不管怎样,自从上次成功后,发生了两件事:
- 我已升级到 OS X 10.11
- 我已将 XCode 升级到版本 7.1.1 (7B1005)
无论出于何种原因,xcodebuild 都不再将构建的产品安装到 /Applications 文件夹中。现在使用 xcodebuild 构建时,构建日志的最后几行是:
Touch /var/root/Library/Developer/Xcode/DerivedData/SoundSample-bvsqlgnuhfmtjkgkhevztdzbjbie/Build/Intermediates/ArchiveIntermediates/Trainer/BuildProductsPath/Release/Trainer.app.dSYM
cd /Users/pbholmen/Projects/SoundSample
/usr/bin/touch -c /var/root/Library/Developer/Xcode/DerivedData/SoundSample-bvsqlgnuhfmtjkgkhevztdzbjbie/Build/Intermediates/ArchiveIntermediates/Trainer/BuildProductsPath/Release/Trainer.app.dSYM
RegisterWithLaunchServices /var/root/Library/Developer/Xcode/DerivedData/SoundSample-bvsqlgnuhfmtjkgkhevztdzbjbie/Build/Intermediates/ArchiveIntermediates/Trainer/InstallationBuildProductsLocation/Applications/Trainer.app
cd /Users/pbholmen/Projects/SoundSample
builtin-lsRegisterURL /var/root/Library/Developer/Xcode/DerivedData/SoundSample-bvsqlgnuhfmtjkgkhevztdzbjbie/Build/Intermediates/ArchiveIntermediates/Trainer/InstallationBuildProductsLocation/Applications/Trainer.app
** INSTALL SUCCEEDED **
我试图简单地将它构建的 Trainer.app 复制到 /Applications 文件夹中,但如果我双击它,它就不会运行。当然,在 XCode 中构建和运行应用程序时,应用程序可以使用“调试”和“发布”配置。
当它确实工作时,这将是构建日志的最后几行(在终端中):
Touch build/Release/Trainer.app.dSYM
cd /Users/pbholmen/Projects/SoundSample
/usr/bin/touch -c /Users/pbholmen/Projects/SoundSample/build/Release/SoundSample.app.dSYM
RegisterWithLaunchServices /Applications/Trainer.app
cd /Users/pbholmen/Projects/SoundSample
builtin-lsRegisterURL /Applications/Trainer.app
** INSTALL SUCCEEDED **
如果我尝试从 XCode 中进入构建日志,找到它放置构建的位置,然后在 Finder 中移动到该位置并从 XCode 外部启动应用程序,这也不起作用。
在这里您可以看到我的目标部署构建设置:
在“部署位置”下,我尝试了“是”和“否”,在“OS X 部署目标”下,我尝试了“OS X 10.10”和“OS X 10.11”。以及两者的所有四种组合。
【问题讨论】:
-
使用
archive并从那里安装怎么样? -
谢谢。我已经尝试过了,它以前不能工作,但现在可以工作了,在我设置了我的目标所依赖的框架的部署位置之后,该框架位于不同的项目中。所以,我现在可以安装它,但我希望有一种方法可以通过命令行(更快)来完成,所以我会保持我的问题开放。
-
如果你想管理 Xcode 项目依赖项,那么听起来你需要创建一个 Xcode 工作区并构建它。
-
感谢您的帮助。我已经将外部项目添加到我的主项目中,这也应该可以工作。我现在已经弄清楚了问题所在,会写一篇文章通知其他读者。