什么是Xcode中的嵌入式二进制文件?

Dou*_*son 58 embed xcode xcode6 alamofire

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

在此输入图像描述

什么是嵌入式二进制文件

Mar*_*zyk 44

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

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

  • 我记得在OS X上最近在iOS上使用另一个第三方框架执行此操作的方式是构建框架,然后创建一个复制文件Build Phase来复制"Frameworks"目标下的框架.这应该是替代吗?它似乎比我以前的方式更容易. (3认同)
  • 是的,它应该替代 Copy Files 构建阶段,用于复制二进制文件,例如框架、库和命令行工具。 (2认同)

mat*_*att 42

  • "二进制"意味着:编译代码 - 而不是"源代码",这是您在将代码编写为文本时使用的.

    他们可以给你源代码并让编译它,但他们没有; 他们保持源代码的秘密,因此他们编译后将它全部交给你,这样你就无法阅读它.

  • "嵌入"意味着:通过在构建时将其复制到应用程序包中,将其包含在应用程序包中.

    因此,他们正在向您发送一些已编译的代码(框架),并告诉您如何将它们包含在您的应用程序包中.与Cocoa框架不同,这些框架在设备上尚不存在,因此如果您不在应用程序中包含它们,它们将不会出现,您的应用程序将无法调用它们.

    将此与Cocoa的框架进行对比.它们也是编译代码.但它们确实存在于设备上.因此,它们不会嵌入您的应用内; 它们仅仅是链接的(并且,如果它们出现,将出现在下一组,链接框架和库中).


Shu*_*hra 5

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

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

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

当我们frameworkEmbedded Binaries它添加 a 时,它Linked Frameworks and Libraries也会自动添加该框架。

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