【问题标题】:What is the difference between "Embedded Binaries" in Xcode General tab and "Embeded Frameworks" in Build Phases tab?Xcode General 选项卡中的“Embedded Binaries”和 Build Phases 选项卡中的“Embedded Frameworks”有什么区别?
【发布时间】:2019-07-30 02:00:48
【问题描述】:

Xcode General 选项卡中的“Embedded Binaries”和 Build Phases 选项卡中的“Embeded Frameworks”有什么区别?

General 选项卡中的“Linked Frameworks”和 Build Phrases 选项卡中的“Link Binary with Libraries”有什么区别?


有一些文章解释他们 What is the difference between Embedded Binaries and Linked Frameworks Link Binary with libraries VS Embed Frameworks

但我仍然不知道 General 标签和 Build Phases 标签之间的区别。

【问题讨论】:

标签: ios xcode frameworks shared-libraries


【解决方案1】:
  1. 嵌入式二进制文件:

    二进制文件是编译后的文件,在这种情况下,它是 iOS 环境中的框架。当您使用 iOS 设备中不可用的框架时,例如 Alamofire、SDWebImage,您需要配置您的 xcode 项目,以便在导出时将二进制文件复制到 IPA 中。如果没有复制,IPA 将无法工作,因为运行 Alamofire 所需的代码和 SDWebImage 在 iOS 环境或 IPA 中不可用。

    对于 Apple 开发的框架,已经在 iOS 环境中可用,您不必将它们添加到 Embedded Binary,例如 UIKit、Foundation。

    如果您正在运行 iOS 12 支持的 API,则在装有 iOS 10 的设备上,应用程序将崩溃,因为 iOS 10 环境不知道 iOS 12 中的 API。此问题在 Android 开发中使用支持库,它是 Android 中的二进制文件,它拥有所有最新的 API,可以在不同版本的 Android 操作系统中使用。

  2. 链接的框架和库

    这里你应该添加苹果的默认框架和库。添加它以表明当前目标正在使用这些框架,因为 LLVM 现在在 Xcode 中可用,您不必这样做,因为它在 LLVM 的帮助下自动链接

  3. 嵌入式框架

  4. 将二进制文件与库链接

要了解 3 和 4,您需要了解构建阶段。

构建阶段是代码编译为二进制文件并导出为 IPA 文件时发生的一些过程。简而言之,它们是在您构建项目时发生的过程。

在构建项目时,构建阶段中列出的步骤会一个接一个地完成,

3 和 4 是在构建过程中完成的两个过程。

  1. 此过程将库嵌入到二进制编译文件中,以便在应用程序中使用。
  2. 此过程将编译后的二进制文件与库链接。

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 1970-01-01
    • 2011-02-13
    • 2012-04-18
    • 2011-01-14
    • 2023-04-01
    • 2021-11-08
    • 1970-01-01
    相关资源
    最近更新 更多