40

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

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

我宁愿让项目中的框架依赖于它,而不是在其中有 5-6 个子项目,因为这只是导航视图中的一团糟——
子项目中的文件一直显示在搜索结果中, NavView 中的子项目会因任何原因在项目中扩展..

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

4

6 回答 6

48

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

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

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

现在您正在为您的目标使用选择的库。对需要此子项目的每个目标重复这些步骤。希望有帮助!对我来说,它确实是因为我之前无法设法向它添加依赖项......

格雷茨,汤姆特

于 2014-03-24T12:01:04.243 回答
19

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

于 2015-12-10T12:39:50.177 回答
8

在 Xcode 5 中,您必须:

  • 在左侧选项卡上选择项目
  • 在 TARGETS 部分中选择目标
  • 然后在 Build Phases > Target Dependencies 按“+”
  • 选择添加的项目作为目标,它将出现在 Target Dependencies 列表中

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

于 2013-10-22T10:09:59.190 回答
6

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

于 2013-10-07T17:41:42.850 回答
6

这来自Tomte的回答。他的方法导致我出现Dependency Analysis Error。这是一种更直接的方法,并解释了为什么 Tomte 的答案有效:

  1. 点击子项目,将其拖入需要定位子项目的项目中。
  2. 现在应该显示选项警报。确保未选择“如果需要则复制项目”。确保选择了创建组。确保没有选择项目的任何目标。按完成按钮。
  3. 单击刚刚添加子项目引用的项目。
  4. 单击您希望对子项目具有依赖关系的目标。
  5. 单击目标依赖项+ 按钮。
  6. 请注意,子项目的产品被列为一个选项。选择它。

请注意,当使用 Tomte 的方法时,将项目添加到Link Binary With Libraries时,会创建项目引用。这个项目参考可以在项目的框架组中找到。

我对这是否是一个好方法感到矛盾。在我看来,方案方法也好不到哪里去。我实际上想知道为什么工作区项目默认情况下没有这种关系。

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

于 2017-02-03T20:39:47.390 回答
-3

考虑迁移到CocoaPods

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

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

于 2014-04-21T01:03:24.070 回答