2011-10-31 103 views
5

假设我在Xcode 4工作区中有2个项目。项目A是最终产品,它需要从项目B构建的实用程序应用程序。目标是让A的构建过程在必要时自动构建项目B,然后将构建的应用程序复制到产品A的应用程序包的资源文件夹中。Xcode:如何将构建的产品从一个项目添加到另一个项目中?

Xcode 4的文档在这方面真的很缺乏。我尝试将内置的B.app添加到项目A中,使用将文件添加到“项目A”...命令。它没有复制应用程序包,但它不检查依赖关系。也就是说,它不会在更新时自动构建项目B.

任何指针找到正确的文档也非常感谢。

编辑:我期待实现这一doc提到的第2个好处,是:

  • 一个项目都可以使用的产品的另一个项目的同时建设。

  • 如果一个项目依赖于另一个在同一 工作空间的产品,Xcode中可以检测到这一点,并自动以正确的顺序构建项目 。

我知道将项目添加到另一个项目的普通旧项目方式作为子项目,所以我可以设置目标依赖项。但从工作区文档的措辞来看,似乎有一种更简单和自动的方式。但我无法找到执行这两个功能中的任何一个的步骤。

回答

4

在项目A的目标屏幕的“构建阶段”选项卡中,将项目B添加为“目标依赖项”。 (当您单击顶级项目节点上,你得到的屏幕)

更新:
看来,如果第二个项目是的一个子项目,一个项目只能定义另一个项目作为依赖的输出第一:

I can define the output of Project B as dependency of A in this constellation

如果您的工作空间具有以下结构,定义的依赖是不可能的: Output of B does not show up in the dependency editor of A in this constellation

+0

感谢。但是,这就像在旧的项目方式,对不对?我认为这个新的工作空间有一个更好的方法。在我发现的唯一文档中(http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/NewProject/NewProject.html)它提到:“一个项目可以使用另一个项目的产品,同时建造。”和“如果一个项目依赖于另一个项目的产品在同一个工作区中,Xcode可以检测到这一点,并以正确的顺序自动构建项目。”后者显然不适合我的情况。 –

+0

看来B必须是A的一个子项目,以便它的输出显示在A的依赖编辑器中。我用屏幕更新了我的原始答案。 –

+0

感谢您的更新。我正在寻找新的“神奇”工作区方式。但似乎苹果只是吹这个热气。这与旧的项目方式完全相同。我没有看到使用新工作区的好处。 Xcode甚至混淆了这种古老的方式。它不会将产品B自动添加到复制资源阶段。我必须手动构建B并将B.app添加到A.即使这样,它仍然会将其混淆。我指定了发布的B被复制。但是当构建A进行调试时,它构建了一个调试B,并且因为它位于不同的构建目录中而无法找到B.app来进行复制。哦,我的... –

0

的Xcode 8版本8.2.1(8C1002)

第1步 - 创建一个工作区。 enter image description here

步骤2 - 将伸入工作区作为兄弟节点 enter image description here

步骤3 - 添加构建产物之一,作为嵌入二进制,对于其他。 enter image description here

第4步 - 创建代码,在必要时声明公开。 enter image description here

第5步 - 使用代码 enter image description here

+0

OP想要添加构建的产品,而不是源文件,这是项目B目录中的内容。 –

+0

@ScottMarks这个答案就像一个数百万年前的。将在一分钟内更新答案。 – 2017-03-07 09:47:18

相关问题