Xcode工作区与子项目和项目依赖关系触发构build
我希望有更好的Xcode 5的文档,但是我找不到任何像样的工作空间的最佳实践,所以..
在一个包含多个项目的工作空间(一对夫妇框架,一个应用程序)中,是否有可能让Xcode 只在需要的时候才build立所有的依赖项目(即find更改) 而不必将所有项目包含在所有依赖的项目中 ?
我宁愿只是在项目中的框架取决于它,而不是有5-6个子项目,因为这只是一个混乱的导航视图 –
子项目中的文件始终显示在search结果中,NavView中的子项目由于种种原因在项目中展开。
然而,不包括项目的特定项目取决于我无法find一种方法让Xcode 5自动重build框架,如果其中一个依赖关系已经改变。
这个解决scheme是针对另一个问题,但也许它满足您的需求。
将您的子项目添加到工作区后:
- select应使用新添加的子项目的目标
- 在“构build阶段”下的“与库链接二进制文件”中点击+button
- 如果图书馆没有出现点击“添加其他…”
- 导航到项目文件(* .xcodeproj)所在的文件夹
- 将其标记并点击“打开”
- 现在你应该看到“链接二进制文件库”下的“项目文件”
- 在同一选项卡的“目标相关性”下,点击+button
- 现在你应该看到必要的文件
- 检查你的并点击“添加”
- 再次在“Link Binaries with Libraries”中点击+button
- 现在你的.a文件应该显示出来,你可以select并添加它
现在,您正在使用选定的图书馆作为您的目标。 为需要这个子项目的每个目标重复这些步骤。 希望有所帮助! 对我来说,这是因为我无法设法添加依赖关系之前…
Greetz,Tomte
以防万一别人在Xcode 7中遇到问题:在添加或删除项目之前,请确保您要添加的项目作为子项目未打开。
在XCode 5你必须去
- select左侧选项卡上的项目
- 在TARGETS部分中select目标
- 然后在构build阶段>目标依赖按“+”
- select添加的项目作为目标,它将出现在目标依赖项列表中
如果有效的话,如果需要的话,构build所有的目标依赖关系将被构build在一起。
你可以创build一个计划,build立所有的目标。
这是从Tomte的答案中得出的。 他的方法导致我依赖分析错误 。 这是一个更直接的方法,并解释了为什么Tomte的答案有效:
- 点击子项目并将其拖到需要定位子项目的项目中。
- 现在应显示选项警报。 确保没有select复制项目(如果需要 )。 确保select创build组 。 确保没有select任何项目的目标。 按下完成button。
- 点击刚添加子项目引用的项目。
- 点击你想要依赖于子项目的目标。
- 点击Target Dependecies +button。
- 注意子项目的产品被列为选项。 select它。
请注意,在使用Tomte的方法时,如果将项目添加到“ 链接二进制库” ,则会创build一个项目引用。 该项目参考可以在项目的框架组中find。
我对这是否是一个好的方法感到矛盾。 在我看来,计划方法并不好。 我真的好奇为什么工作区项目默认情况下没有这种关系。
至less,这应该清除Tomte解决scheme中的魔法。
考虑迁移到CocoaPods 。
它不仅可以解决构build问题,而且可以像描述的那样复杂的项目,在更新/添加/删除框架,更改目标系统版本以及解决依赖关系和冲突时,将会使您的生活更轻松。
另外你的工作空间可能会变成只有两个项目。