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

Jay*_*Jay 40 xcode cocoa frameworks xcode5

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

在具有多个项目(几个框架,1个应用程序)的工作空间中,是否可以让Xcode 在需要时(即发现更改)构建所有依赖项目,而不必包括所有依赖项目中的所有项目

我宁愿只想在项目中使用框架,而不是在其中有5-6个子项目,因为这只是导航视图中的一个混乱-
子项目中的文件始终显示在搜索结果中,NavView中的子项目因项目内的任何原因而扩展.

但是,w/o包含特定项目的项目取决于我找不到让Xcode 5自动重新构建框架的方法,如果其中一个依赖项发生了变化.

Tom*_*mte 48

此解决方案旨在解决另一个问题,但也许它可以满足您的需求.

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

  1. 选择应使用新添加的子项目的Target
  2. 在Build Phases下的"Link Binaries with Libraries"中点击+按钮
  3. 如果图书馆没有显示"添加其他..."
  4. 导航到项目文件(*.xcodeproj)所在的文件夹
  5. 标记并点击"打开"
  6. 现在您应该看到项目文件显示在"链接二进制文件与库"下
  7. 在同一选项卡中的"目标依赖关系"下,按+按钮
  8. 现在你应该看到必要的文件
  9. 检查你的并点击"添加"
  10. 再次在"Link Binaries with Libraries"中点击+按钮
  11. 现在你的.a文件应该出现,你可以选择并添加它

现在您正在使用所选的库作为目标.对需要此子项目的每个目标重复这些步骤.希望有所帮助!对我来说这样做是因为我无法在之前添加依赖关系...

格雷茨,汤特

  • 如果关闭Implicit Dependencies,这将无效,这会大大减慢索引并在大型工作区中构建. (3认同)

Ras*_*spu 16

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


lor*_*isi 8

XCode 5你必须去

  • 在左侧选项卡上选择项目
  • 在TARGETS部分中选择目标
  • 然后在Build Phases> Target Dependencies中预测"+"
  • 选择添加的项目作为目标,它将显示在"目标依赖项"列表中

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

  • 对我不起作用 - 如果当前项目所依赖的其他项目不能添加到*Build Phases*中,既不能通过**+**添加,也不能通过工作空间中其他项目的Drag&Drop添加. (3认同)

Fos*_*tah 6

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

  1. 单击子项目并将其拖动到需要定位子项目的项目中.
  2. 现在应显示选项警报.确保未选中" 如果需要复制项目".确保选中" 创建组".确保未选择任何项目的目标.按" 完成"按钮.
  3. 单击刚刚添加子项目引用的项目.
  4. 单击要对子项目具有依赖关系的目标.
  5. 单击Target Dependecies +按钮.
  6. 请注意,子项目的产品作为选项列出.选择它.

请注意,在使用Tomte方法时,将项目添加到Link Binary With Libraries时,会创建项目引用.可以在项目的Frameworks组中找到此项目引用.

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

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


小智 5

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