带有子项目和项目依赖项的Xcode工作区触发生成

带有子项目和项目依赖项的Xcode工作区触发生成,xcode,cocoa,frameworks,xcode5,Xcode,Cocoa,Frameworks,Xcode5,我希望Xcode 5有更好的文档,但我找不到任何合适的文档来描述使用工作区的最佳实践,所以 在一个包含多个项目(两个框架,一个应用程序)的工作区中,是否可以让Xcode仅在需要时构建所有依赖项目(即发现更改)而不必在所有依赖项目中包含所有项目 我更希望项目中的框架依赖于它,而不是有5-6个子项目,因为这在导航视图中只是一团乱- 子项目中的文件始终显示在搜索结果中,NavView中的子项目因项目中的任何原因而展开 但是,不包括特定项目所依赖的项目如果其中一个依赖项已更改,我无法找到让Xcode 5

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

在一个包含多个项目(两个框架,一个应用程序)的工作区中,是否可以让Xcode仅在需要时构建所有依赖项目(即发现更改)而不必在所有依赖项目中包含所有项目

我更希望项目中的框架依赖于它,而不是有5-6个子项目,因为这在导航视图中只是一团乱-
子项目中的文件始终显示在搜索结果中,NavView中的子项目因项目中的任何原因而展开


但是,不包括特定项目所依赖的项目如果其中一个依赖项已更改,我无法找到让Xcode 5自动重新构建框架的方法。

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

在Xcode 5中,您必须:

  • 选择左侧选项卡上的项目
  • 在目标部分选择目标
  • 然后在构建阶段>目标依赖项中按“+”
  • 选择添加的项目作为目标,它将显示在目标依赖项列表中

如果可行,在构建时,所有目标依赖项将在需要时一起构建。

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

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

  • 选择应使用新添加子项目的目标
  • 在构建阶段的“将二进制文件与库链接”中,点击+ 钮扣
  • 如果库没有显示,点击“添加其他…”
  • 导航到项目文件(*.xcodeproj)所在的文件夹
  • 标记它并点击“打开”
  • 现在您应该看到项目文件显示在“链接二进制文件”下 与图书馆合作”
  • 在同一选项卡的“目标依赖项”下,点击+按钮
  • 现在您应该可以看到必要的文件了
  • 检查您的并点击“添加”
  • 再次在“将二进制文件链接到库”中点击+按钮
  • 现在,您的.a文件应该显示出来,您可以选择并添加它
  • 现在,您正在为目标使用所选的库。对需要此子项目的每个目标重复这些步骤。希望有帮助!对我来说,这是因为我以前无法向它添加依赖项

    Greetz,Tomte考虑迁移到

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


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

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

    这是从托姆特的回答中得出的。他的方法给我造成了依赖性分析错误。这是一种更直截了当的方法,并解释了为什么Tomte的答案有效:

  • 单击子项目并将其拖动到需要以子项目为目标的项目中
  • 此时应显示选项警报。确保未选择“根据需要复制项目”。确保已选中“创建组”。确保未选择任何项目目标。按完成按钮
  • 单击刚刚添加子项目引用的项目
  • 单击要依赖子项目的目标
  • 单击目标依赖项+按钮
  • 请注意,子项目的产品列为一个选项。选择它
  • 注意,当使用Tomte的方法时,当项目被添加到使用库链接二进制文件时,会创建一个项目引用。此项目参考可在项目的框架组中找到

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


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

    Hmm。。没错,但那是蛮力的方法。我宁愿让Xcode智能地只构建所需的依赖项。@在我所从事的大型项目中,有时我希望编译主二进制文件(使用已构建的依赖项),有时我希望构建整个依赖项链。在我们的项目上进行完整构建可能需要几个小时,当我在框架上进行突破性的更改时,我愿意这样做,但当我在主二进制文件中进行更改时,我不愿意这样做。当您拥有所有源代码时,就会发生这种情况。使用自定义方案,我可以在特定目标上进行干净的构建,为特定目标运行测试,并真正完全控制Xcode IDE。我想说这种设置有点罕见。这确实有效,但不好,因为要将其作为依赖项进行构建,需要关闭并行构建,这会使构建非常缓慢,从而破坏每个人的生活。对我来说不起作用-如果当前项目所依赖的其他项目无法在构建阶段添加,无论是通过+还是从工作空间中的其他项目拖放。请尝试先将第二个项目拖放到第一个项目。然后转到构建阶段>目标依赖项。在这里,当按下“+”键时,您应该会看到第二个要选择的项目。我在一个工作区中有一个框架和另一个项目,这解决了工作区克隆不构建依赖性的问题。谢谢如果关闭了隐式依赖项,这将大大降低大型工作区中的索引和构建速度。请查看XCode 7是否有问题。请注意,这是一种复杂的向项目添加项目引用的方法。等你做完