首页 文章

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

提问于
浏览
60

当使用外部框架时,Xcode现在有一个 Embedded Binaries 以及 Linked Frameworks 部分 .

enter image description here

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

当您使用Carthage构建库时,建议您拖入 Embedded Binaries 部分 .

两者似乎都在链接方面起作用,因为API可用于任何一种方式,当在 Embedded Binaries 部分中添加框架时,它也会自动添加到 Linked Frameworks and Libraries 部分 .

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

3 回答

  • -2

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

  • 10
    • 链接 - 如果我们使用其中定义的任何API,我们必须链接一个框架 .

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

  • 41

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

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

相关问题