【发布时间】:2015-07-22 07:16:46
【问题描述】:
我在一个 Swift 项目中使用Alamofire,他们的部分手动安装说明是在我的应用程序目标的常规选项卡的嵌入式二进制文件下添加 Alamofire。
什么是嵌入式二进制文件?
【问题讨论】:
标签: xcode xcode6 embed alamofire
我在一个 Swift 项目中使用Alamofire,他们的部分手动安装说明是在我的应用程序目标的常规选项卡的嵌入式二进制文件下添加 Alamofire。
什么是嵌入式二进制文件?
【问题讨论】:
标签: xcode xcode6 embed alamofire
framework是一个分层目录,封装了一个动态的 库、头文件和资源,例如故事板、图像 文件和本地化字符串到一个包中。应用程序使用 框架需要在应用程序包中embed the framework。
因此,当您在应用中嵌入框架时,它会增加应用的大小,因为它会复制到您的应用程序包中。在大多数情况下,当我们使用第三方框架时,我们将使用此部分。
当我们将framework 添加到Embedded Binaries 时,它也会自动将该框架添加到Linked Frameworks and Libraries。
更多详情请参考苹果文档:https://developer.apple.com/library/archive/technotes/tn2435/_index.html
【讨论】:
嵌入式二进制文件是在您构建项目时复制到您的应用程序包中的二进制文件。当您的应用程序依赖于第三方框架时,请使用嵌入式二进制文件,这样人们就可以使用您的应用程序,而无需在他们的机器上安装这些框架。嵌入式二进制文件使用户不必手动安装第三方框架。您的应用程序使用您嵌入的框架。
在您的 Alamofire 示例中,您的应用程序依赖于 Alamofire。如果你没有嵌入 Alamofire 框架,除非他们手动安装 Alamofire,否则没有人可以使用你的应用程序。通过在您的应用程序中嵌入 Alamofire,每个人都可以运行您的应用程序。
【讨论】:
“二进制”的意思是:编译后的代码——与“源代码”相对,后者是您将代码编写为文本时所使用的。
他们可以给你源代码并让你编译它,但他们没有;他们对源代码保密,所以他们在编译后全部给你,所以你看不到它。
“嵌入”是指:通过在构建时将它们复制到其中来包含在您的应用程序包中。
因此,他们将一些已编译的代码(框架)交给您,并告诉您如何将它们包含在您的应用程序包中。与 Cocoa 的框架不同,这些框架并不存在于设备上,因此如果您不将它们包含在应用程序中,它们将不会存在,并且您的应用程序将无法调用它们。
将此与 Cocoa 的框架进行对比。它们也是编译后的代码。但它们确实已经存在于设备上。因此它们没有嵌入到您的应用程序中;它们只是链接(如果它们出现,将出现在下一组,链接框架和库中)。
【讨论】: