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

时间:2015-05-11 17:02:56

标签: xcode xcode6 embed alamofire

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

enter image description here

什么是嵌入式二进制文件

3 个答案:

答案 0 :(得分:39)

  • “Binary”表示:已编译的代码 - 与“源代码”相反,这是您在将代码编写为文本时所使用的。

    他们可以给你源代码并让编译它,但他们没有;他们保密源代码,所以他们在编译后将它全部交给你,这样你就无法阅读它。

  • “嵌入式”表示:包含在您的应用包中,在构建时将其复制到其中。

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

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

答案 1 :(得分:39)

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

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

答案 2 :(得分:2)

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

  

framework是封装动态目录的分层目录   库,头文件和资源,例如情节提要,图像   文件和本地化的字符串合并到一个包中。应用使用   框架需要在应用程序的捆绑包中embed the framework

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

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

有关更多详细信息,请参阅Apple文档:https://developer.apple.com/library/archive/technotes/tn2435/_index.html