【问题标题】:Can't embed binary of embedded project in Xcode无法在 Xcode 中嵌入嵌入式项目的二进制文件
【发布时间】:2018-04-30 08:41:51
【问题描述】:

我有一个主项目Project One,它是一个 macOS Swift 应用程序。我添加了一个子项目Project Two,它是一个命令行工具。我希望将构建的命令行工具作为二进制文件嵌入到 Project One.app 的包中,Process() 将在其中调用它。

但是,我无法将构建的二进制文件嵌入到主应用程序中。

我是这样设置的:

  • 照常创建第一个主项目
  • 在 Xcode 9.3(Swift 中的命令行工具)中创建了一个新项目
  • 在 Finder 中,将 Project Two.xcodeproj 文件拖到 Xcode 侧边栏中,您可以在截屏视频中看到它
  • 编译项目二 - 然后它出现在项目二的 Products 文件夹中

可以将它拖到“链接的框架和库”中,但即使这样做了,我也无法将它拖到嵌入式二进制文件中。

【问题讨论】:

    标签: swift xcode macos


    【解决方案1】:

    您需要做的是转到“构建阶段”选项卡,然后创建一个新的“复制文件”构建阶段。然后,您可以将该工具拖入新创建的构建阶段。确保还将工具的目标添加到 Target Dependencies 构建阶段,否则您将在构建过程中创建竞争条件,这将随机导致构建失败。

    【讨论】:

    • 谢谢!这非常有效。但是,嵌入式二进制文件有什么用呢?仅适用于已编译的框架?为什么我们不能以这种方式嵌入工具而不是“复制文件”方法?
    • @jeff-h 我不记得“嵌入式二进制文件”在那里,TBH,所以它可能是一个相对较新的添加(尽管我之前也可能没有注意到它)。我玩了一下,它似乎是某种“语法糖”。对于某些文件类型,将某些内容添加到 Embedded Binaries 会自动为您设置 Target Dependencies 和 Copy Files 构建阶段。但它只适用于它知道如何处理的类型,命令行工具不是其中之一。可能是因为 iOS 没有命令行工具,而且这些天没有人喜欢我们 macOS 开发人员。
    猜你喜欢
    • 2015-03-11
    • 1970-01-01
    • 2020-02-08
    • 2015-01-15
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 2021-05-27
    相关资源
    最近更新 更多