具有子项目和项目依赖性的Xcode工作空间触发构建

时间:2013-10-07 17:01:42

标签: xcode cocoa frameworks xcode5

我希望Xcode 5有更好的文档,但我找不到任何适当的描述使用工作区的最佳实践,所以...

在一个包含多个项目(几个框架,1个应用程序)的工作区中,可以让Xcode在需要时构建所有依赖项目 (即找到更改)不必包括所有相关项目中的所有项目

我宁愿在项目中依赖它而不是在其中有5-6个子项目,因为这只是导航视图中的一个混乱 -
子项目中的文件一直显示在搜索结果中,NavView中的子项目因项目中的任何原因而展开..

然而,没有包含项目的特定项目取决于我找不到让Xcode 5自动重构框架的方法如果其中一个依赖项发生了变化。

6 个答案:

答案 0 :(得分:46)

此解决方案旨在解决另一个问题,但可能会满足您的需求。

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

  1. 选择应使用新添加的子项目的目标
  2. 在Build Phases下的“Link Libaries with Libraries”中点击+ 按钮
  3. 如果图书馆没有显示“添加其他...”
  4. 导航到项目文件(* .xcodeproj)所在的文件夹
  5. 标记并点击“打开”
  6. 现在您应该看到项目文件显示在“链接二进制文件”下 与图书馆“
  7. 在同一标签的“目标依赖关系”下,点击+按钮
  8. 现在您应该看到必要的文件
  9. 检查你的并点击“添加”
  10. 再次在“带库的链接二进制文件”中点击+按钮
  11. 现在您的.a文件应该显示,您可以选择并添加它
  12. 现在您正在使用所选的库作为目标。对需要此子项目的每个目标重复这些步骤。希望有所帮助!对我而言,这是因为我无法在...之前设法添加依赖项...

    Greetz,Tomte

答案 1 :(得分:15)

以防其他人在Xcode 7中遇到此问题:在添加或删除项目之前,请确保要将项目添加为子项目打开。

答案 2 :(得分:8)

XCode 5 上你必须去

  • 在左侧选项卡上选择项目
  • 在目标部分中选择目标
  • 然后在Build Phases>目标依赖性是“+”
  • 选择添加的项目作为目标,它将显示在目标依赖项列表

如果它有效,那么构建所有目标依赖项时将根据需要一起构建。

答案 3 :(得分:6)

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

  1. 单击子项目并将其拖动到需要定位子项目的项目中。
  2. 现在应显示选项警报。确保未选择复制项目(如果需要)。确保选中创建组。确保未选择任何项目的目标。按完成按钮。
  3. 单击刚刚添加子项目引用的项目。
  4. 单击要对子项目具有依赖关系的目标。
  5. 点击目标依赖 +按钮。
  6. 请注意,子项目的产品作为选项列出。选择它。
  7. 请注意,使用Tomte方法时,将项目添加到 Link Binary With Libraries 时,会创建项目引用。该项目参考可以在项目的框架组中找到。

    我对这是否是一种好方法感到矛盾。在我看来,计划方法并没有好多少。我实际上想知道为什么工作区项目默认没有这种关系。

    至少,这应该清除Tomte解决方案中的魔力。

答案 4 :(得分:5)

您可以创建一个构建所有目标的方案。

答案 5 :(得分:-1)

考虑迁移到CocoaPods

它不仅可以解决您的构建问题,而且对于您所描述的复杂项目,它将在更新/添加/删除框架,更改目标系统版本以及解决依赖性和冲突时简化您的生活。

此外,您的工作区可能只会成为两个项目。