【问题标题】:What are Embedded Binaries in Xcode?Xcode 中的嵌入式二进制文件是什么?
【发布时间】:2015-07-22 07:16:46
【问题描述】:

我在一个 Swift 项目中使用Alamofire,他们的部分手动安装说明是在我的应用程序目标的常规选项卡的嵌入式二进制文件下添加 Alamofire。

什么是嵌入式二进制文件

【问题讨论】:

    标签: xcode xcode6 embed alamofire


    【解决方案1】:

    嵌入二进制文件将整个框架复制到目标。

    framework 是一个分层目录,封装了一个动态的 库、头文件和资源,例如故事板、图像 文件和本地化字符串到一个包中。应用程序使用 框架需要在应用程序包中embed the framework

    因此,当您在应用中嵌入框架时,它会增加应用的大小,因为它会复制到您的应用程序包中。在大多数情况下,当我们使用第三方框架时,我们将使用此部分。

    当我们将framework 添加到Embedded Binaries 时,它也会自动将该框架添加到Linked Frameworks and Libraries

    更多详情请参考苹果文档:https://developer.apple.com/library/archive/technotes/tn2435/_index.html

    【讨论】:

      【解决方案2】:

      嵌入式二进制文件是在您构建项目时复制到您的应用程序包中的二进制文件。当您的应用程序依赖于第三方框架时,请使用嵌入式二进制文件,这样人们就可以使用您的应用程序,而无需在他们的机器上安装这些框架。嵌入式二进制文件使用户不必手动安装第三方框架。您的应用程序使用您嵌入的框架。

      在您的 Alamofire 示例中,您的应用程序依赖于 Alamofire。如果你没有嵌入 Alamofire 框架,除非他们手动安装 Alamofire,否则没有人可以使用你的应用程序。通过在您的应用程序中嵌入 Alamofire,每个人都可以运行您的应用程序。

      【讨论】:

      • 我记得过去在 OS X 上最近在 iOS 上使用另一个 3rd 方框架执行此操作的方式是构建框架,然后创建一个复制文件 Build Phase 以在“框架”下复制框架“ 目的地。这应该是替代品吗?这似乎比我以前的做法更容易。
      • 是的,它应该是复制文件构建阶段的替代品,用于复制框架、库和命令行工具等二进制文件。
      • 您是否看过有关此 Xcode 功能的任何文档?我还没有找到。
      • 我没有看到任何关于它的文档,但我并没有努力寻找它的文档。
      • 我在 XCode 8 中发现了一件更奇怪的事情。“General -> Embedded binaries”和“Build Phases -> Embed Frameworks”似乎是相关联的,因为如果您将 .framework 拖入其中之一地方,它也会自动出现在另一个地方;并且在“嵌入框架”中,它会自动启用“代码签名复制”(签名对于构建您的应用存档以进行分发很重要)。
      【解决方案3】:
      • “二进制”的意思是:编译后的代码——与“源代码”相对,后者是您将代码编写为文本时所使用的。

        他们可以给你源代码并让编译它,但他们没有;他们对源代码保密,所以他们在编译后全部给你,所以你看不到它。

      • “嵌入”是指:通过在构建时将它们复制到其中来包含在您的应用程序包中。

        因此,他们将一些已编译的代码(框架)交给您,并告诉您如何将它们包含在您的应用程序包中。与 Cocoa 的框架不同,这些框架并不存在于设备上,因此如果您不将它们包含在应用程序中,它们将不会存在,并且您的应用程序将无法调用它们。

        将此与 Cocoa 的框架进行对比。它们也是编译后的代码。但它们确实已经存在于设备上。因此它们没有嵌入到您的应用程序中;它们只是链接(如果它们出现,将出现在下一组,链接框架和库中)。

      【讨论】:

      • 它们被称为嵌入式“二进制文件”而不是嵌入式“框架”这一事实让我认为它们的目的不仅仅是为了框架。您知道它们是否用于除框架之外的其他任何东西吗?另外,你对这方面的文件有什么看法吗?我还没找到。
      • 在更一般的情况下,您还可以嵌入库文件。
      猜你喜欢
      • 2017-04-17
      • 2015-03-11
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多