嵌入式二进制文件和链接框架之间有什么区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式二进制文件和链接框架之间有什么区别相关的知识,希望对你有一定的参考价值。

使用外部框架时,Xcode现在有一个嵌入式二进制文件和链接框架部分。

enter image description here

当您下载外部框架和Finder->将其拖入Xcode时,它会将框架放入Linked Frameworks and Libraries部分。

当您使用Carthage构建库时,建议您拖入嵌入式二进制文件部分。

两者似乎都在链接方面起作用,因为API可用于任何一种方式,在嵌入式二进制文件部分中添加框架时,它也会自动添加到“链接的框架和库”部分中。

那么,谁是对的?迦太基或其他互联网?为什么有两个选项可以将外部资源包含到Xcode项目中?

答案
  1. 链接 - 如果我们使用其中定义的任何API,我们必须链接一个框架。
  2. 嵌入 - 此过程将确保添加的框架将嵌入到应用程序包中,并可能有助于在应用程序和任何扩展程序包之间共享代码。我们只嵌入了第三方框架,而不是ios提供的框架,因为它们可以在设备中随时使用。如果我们嵌入,这意味着,我们也需要链接到它们,以便Xcode可以编译和创建构建。当应用程序在设备中运行时,嵌入式框架将在需要时加载到内存中。
另一答案

如果您嵌入二进制文件,它将包含在您的产品中。如果您只链接库或框架而不嵌入它,它将不属于您的产品。

但是,在iOS8中,所有第三方框架都需要“嵌入”。即使是在各种程序之间共享的框架也需要“嵌入”到这些程序中的每一个程序中。如果它在设备上安装在共享位置,则使用共享位置中相同“嵌入”代码的任何其他安装过程都可以重用该现有安装。这是针对iOS8的,在iOS8之前和iOS世界之外的这个答案是不可能的。

另一答案

据我所知,嵌入式二进制文件仅包含iOS 8及更高版本上可用的动态框架,否则您只能链接静态框架。

以上是关于嵌入式二进制文件和链接框架之间有什么区别的主要内容,如果未能解决你的问题,请参考以下文章

我们啥时候应该在 Xcode 中使用“嵌入式二进制文件”而不是“链接框架”?

s37和elf文件之间的差异

请问啥是二进制文件 啥是ASCII 啥是文本文件 它们之间有啥区别

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

C中文件操作的文本模式和二进制模式,到底有啥区别?

用于 Telerik 的 Cordova 插件 ios:将自定义框架添加到嵌入式二进制文件