Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode中的嵌入式二进制文件是什么?_Xcode_Xcode6_Embed_Alamofire - Fatal编程技术网

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

Xcode中的嵌入式二进制文件是什么?,xcode,xcode6,embed,alamofire,Xcode,Xcode6,Embed,Alamofire,我正在一个Swift项目中使用,他们的部分手动安装说明是在我的应用程序目标的“常规”选项卡的“嵌入式二进制文件”下添加Alamofire 什么是嵌入式二进制文件? “二进制”的意思是:编译后的代码-与“源代码”相反,源代码是您以文本形式编写代码时使用的代码 他们本可以给你源代码,让你编译,但他们没有;他们对源代码保密,所以他们在编译后把它们都给了你,这样你就看不懂了 “嵌入式”是指:通过在构建时将其复制到应用程序包中,将其包含在应用程序包中 因此,他们会给你一些编译后的代码(框架),并告诉你如

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

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

  • “二进制”的意思是:编译后的代码-与“源代码”相反,源代码是您以文本形式编写代码时使用的代码

    他们本可以给你源代码,让你编译,但他们没有;他们对源代码保密,所以他们在编译后把它们都给了你,这样你就看不懂了

  • “嵌入式”是指:通过在构建时将其复制到应用程序包中,将其包含在应用程序包中

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

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


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

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

嵌入二进制文件将整个框架复制到目标。
framework
是一个分层目录,它封装了动态 库、头文件和资源,例如故事板、图像 将文件和本地化字符串合并到单个包中。应用程序使用 框架需要
将框架嵌入应用程序包中

因此,当你在应用程序中嵌入框架时,它会增加应用程序的大小,因为它会复制到你的应用程序包中。在大多数场景中,当我们使用第三方框架时,我们将使用本节

当我们将
框架
添加到
嵌入式二进制文件
时,它也会自动将该框架添加到
链接的框架和库


有关更多详细信息,请参阅苹果文档:

它们被称为嵌入式“二进制文件”,而不是嵌入式“框架”,这一事实让我觉得它们的用途要比框架更广泛。你知道它们除了用于框架之外还有什么用途吗?另外,你对这方面的文档有什么看法吗?我找不到任何文件。在更一般的情况下,您也可以嵌入库文件。我记得过去在OS X上这样做的方式是最近在iOS上使用另一个第三方框架构建框架,然后创建一个复制文件构建阶段,将框架复制到“框架”目标下。这应该是一个替代品吗?它看起来确实比我以前的方式简单。是的,它应该是复制二进制文件(如框架、库和命令行工具)的复制文件构建阶段的替代品。你看过关于这个Xcode功能的文档吗?我没有找到任何。我没有看到任何关于它的文档,但我没有努力寻找关于它的文档。我在XCode 8中发现了另一件奇怪的事情。“常规->嵌入二进制文件”和“构建阶段->嵌入框架”似乎是链接在一起的,因为如果将.framework拖到其中一个位置,它也会自动出现在另一个位置;在“嵌入框架”中,它会自动启用“代码登录副本”(签名对于构建应用程序档案以供分发非常重要)。