【问题标题】:Xcode: How to add the built product from one project to another in the same workspace?Xcode:如何将构建的产品从一个项目添加到同一工作区中的另一个项目?
【发布时间】:2017-03-07 17:58:54
【问题描述】:

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

Xcode 4 的文档在这方面确实缺乏。我尝试使用 Add Files to "project A"... 命令将构建的 B.app 添加到项目 A 中。它确实复制了应用程序包,但它不检查依赖项。也就是说,它不会在更新时自动构建项目 B。

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

已编辑:我希望实现doc 中提到的前 2 个好处,即:

  • 一个项目可以在构建时使用另一个项目的产品。

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

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

【问题讨论】:

    标签: xcode build build-process


    【解决方案1】:

    在目标屏幕的项目 A 的“构建阶段”选项卡中将项目 B 添加为“目标依赖项”。 (单击顶层项目节点时出现的屏幕)

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

    如果您的 Workspace 具有以下结构,则无法定义依赖项:

    【讨论】:

    • 谢谢。但这就像普通的旧项目方式一样,对吗?我认为这个新的工作空间有更好的方法。在我找到的唯一文档 (developer.apple.com/library/ios/#documentation/ToolsLanguages/…) 中,它提到:“一个项目可以在构建时使用另一个项目的产品。”和“如果一个项目依赖于同一工作区中另一个项目的产品,Xcode 可以检测到这一点并自动以正确的顺序构建项目。”后者显然不适用于我的情况。
    • 看来 B 必须是 A 的子项目,以便它的输出显示在 A 的依赖项编辑器中。我用屏幕更新了我原来的答案。
    • 感谢您的更新。我正在寻找新的“神奇”工作空间方式。但似乎苹果只是在吹热风。这与旧的项目方式完全相同。我看不到使用新工作区的好处。 Xcode 甚至把这种老方法搞砸了。它不会自动将产品 B 添加到复制资源阶段。我必须手动构建 B 并将 B.app 添加到 A。即使那样它仍然会搞砸。我指定要复制已发布的 B。但是在构建 A 进行调试时,它构建了一个调试 B 并且找不到要复制的 B.app,因为它位于不同的构建目录中。哦,我的...
    • 是的。在没有工作区功能的情况下,如上所述组织项目是可能的。我也不知道使用工作空间可以获得什么优势。
    【解决方案2】:

    Xcode 8 版本 8.2.1 (8C1002)

    第 1 步 - 创建工作区。

    第 2 步 - 将项目作为兄弟姐妹拖入工作区

    第 3 步 - 为另一个添加构建产品,作为嵌入式二进制文件。

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

    第 5 步 - 使用代码

    【讨论】:

    • OP 想要添加构建的产品,而不是源文件,这将在 Project B 目录中。
    • @ScottMarks 这个答案就像一百万年。将在一分钟内更新答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    相关资源
    最近更新 更多