嵌入式二进制文件是在构建项目时复制到应用程序包中的二进制文件。当您的应用程序依赖于第三方框架时,使用嵌入式二进制文件使人们可以在他们的计算机上使用您的应用程序而无需安装这些框架。嵌入式二进制文件可以让用户不必手动安装第三方框架。您的应用程序将使用您所嵌入的框架。
在您的 Alamofire 示例中,您的应用程序依赖于 Alamofire。如果您没有嵌入 Alamofire 框架,则除非他们手动安装了 Alamofire,否则任何人都无法使用您的应用程序。通过将 Alamofire 嵌入应用程序,每个人都可以运行您的应用程序。
“二进制”意味着:编译好的代码——与“源代码”相反,当你用文本编写代码时,你正在使用源代码。
他们本可以给你源代码并让你自己编译,但是他们没有这么做;他们将源代码保密起来,所以他们在编译后将所有东西都给了你,这样你就无法阅读它。
“嵌入式”意味着:通过在构建时将它们复制到应用程序包中,将它们包含在您的应用程序包内。
所以,他们会把一些已编译的代码(框架)交给你,并告诉你如何将它们包含在你的应用程序包内。这些框架不像Cocoa框架那样已经存在于设备上,因此如果你不将它们包含在应用程序内,它们将不会出现在应用程序中,你的应用程序将无法调用它们。
相比之下,Cocoa的框架也是编译好的代码。但是它们已经存在于设备上了。因此,它们不会被嵌入到您的应用程序中;它们只是被链接(如果它们出现了,它们将出现在下一个组“链接的框架和库”中)。
框架
是一个分层目录,将动态库、头文件和资源(如storyboard、图像文件和本地化字符串)封装成单个包。使用框架的应用程序需要在应用程序包中嵌入框架
。
因此,当您将框架嵌入应用程序时,它会增加应用程序的大小,因为它被复制到应用程序包中。在大多数情况下,我们在使用第三方框架时会使用这些部分。
当我们将框架
添加到嵌入式二进制文件
中时,它会自动将该框架添加到链接的框架和库
中。
有关更多详细信息,请参阅苹果文档:https://developer.apple.com/library/archive/technotes/tn2435/_index.html