Xcode工作区与子项目和项目依赖关系触发构build

我希望有更好的Xcode 5的文档,但是我找不到任何像样的工作空间的最佳实践,所以..

在一个包含多个项目的工作空间(一对夫妇框架,一个应用程序)中,是否有可能让Xcode 在需要的时候build立所有的依赖项目(即find更改) 而不必将所有项目包含在所有依赖的项目中

我宁愿只是在项目中的框架取决于它,而不是有5-6个子项目,因为这只是一个混乱的导航视图
子项目中的文件始终显示在search结果中,NavView中的子项目由于种种原因在项目中展开。

然而,不包括项目的特定项目取决于我无法find一种方法让Xcode 5自动重build框架,如果其中一个依赖关系已经改变。

这个解决scheme是针对另一个问题,但也许它满足您的需求。

将您的子项目添加到工作区后:

  1. select应使用新添加的子项目的目标
  2. 在“构build阶段”下的“与库链接二进制文件”中点击+button
  3. 如果图书馆没有出现点击“添加其他…”
  4. 导航到项目文件(* .xcodeproj)所在的文件夹
  5. 将其标记并点击“打开”
  6. 现在你应该看到“链接二进制文件库”下的“项目文件”
  7. 在同一选项卡的“目标相关性”下,点击+button
  8. 现在你应该看到必要的文件
  9. 检查你的并点击“添加”
  10. 再次在“Link Binaries with Libraries”中点击+button
  11. 现在你的.a文件应该显示出来,你可以select并添加它

现在,您正在使用选定的图书馆作为您的目标。 为需要这个子项目的每个目标重复这些步骤。 希望有所帮助! 对我来说,这是因为我无法设法添加依赖关系之前…

Greetz,Tomte

以防万一别人在Xcode 7中遇到问题:在添加或删除项目之前,请确保您要添加的项目作为子项目打开。

XCode 5你必须去

  • select左侧选项卡上的项目
  • 在TARGETS部分中select目标
  • 然后在构build阶段>目标依赖按“+”
  • select添加的项目作为目标,它将出现在目标依赖项列表中

如果有效的话,如果需要的话,构build所有的目标依赖关系将被构build在一起。

你可以创build一个计划,build立所有的目标。

这是从Tomte的答案中得出的。 他的方法导致我依赖分析错误 。 这是一个更直接的方法,并解释了为什么Tomte的答案有效:

  1. 点击子项目并将其拖到需要定位子项目的项目中。
  2. 现在应显示选项警报。 确保没有select复制项目(如果需要 )。 确保select创build组 。 确保没有select任何项目的目标。 按下完成button。
  3. 点击刚添加子项目引用的项目。
  4. 点击你想要依赖于子项目的目标。
  5. 点击Target Dependecies +button。
  6. 注意子项目的产品被列为选项。 select它。

请注意,在使用Tomte的方法时,如果将项目添加到“ 链接二进制库” ,则会创build一个项目引用。 该项目参考可以在项目的框架组中find。

我对这是否是一个好的方法感到矛盾。 在我看来,计划方法并不好。 我真的好奇为什么工作区项目默认情况下没有这种关系。

至less,这应该清除Tomte解决scheme中的魔法。

考虑迁移到CocoaPods 。

它不仅可以解决构build问题,而且可以像描述的那样复杂的项目,在更新/添加/删除框架,更改目标系统版本以及解决依赖关系和冲突时,将会使您的生活更轻松。

另外你的工作空间可能会变成只有两个项目。