【问题标题】:Why should I create Dynamic frameworks for iOS Project?为什么要为 iOS 项目创建动态框架?
【发布时间】:2021-07-23 09:43:03
【问题描述】:

我有主要的应用程序目标。我正在将一些代码移动到frameworks 以减少庞大项目的编译时间。

默认框架类型是动态 (BuildSettings -> Mach-O Type)。我了解使用 Apple's dynamic frameworks 的好处,因为多个应用程序将使用相同的框架,并且每个应用程序的大小会更小(因为应用程序大小不包括此动态框架)。

但如果我使用my own frameworks 并且仅在我的应用程序中,为什么我应该选择dynamic frameworks

  1. 看起来使用动态框架Source 的应用程序大小会更大,并且应用程序启动时间会更长(因为它需要连接所有这些动态库,但使用静态它们已经是应用程序可执行文件的一部分)。

  2. 使用动态框架时,应用商店的规模可能也会更大。

如果有人可以告诉我使用dynamic frameworks 可以获得哪些好处,那会很有帮助????

【问题讨论】:

    标签: ios xcode frameworks dylib dynamic-frameworks


    【解决方案1】:

    您的评估大部分是正确的。

    可以不直接链接到框架,而是使用dlopen按需加载它们。
    这既可以用于只需要许多可用库之一的插件系统,也可以用于延迟加载特别繁重的框架,这实际上会减少应用的启动时间。

    我能想到的使用动态链接框架的其他原因是:

    • 许可原因。
    • 如果您正在开发一个封闭源代码库以供其他开发人员使用,那么静态库通常比动态库具有更多嵌入的信息,并且使用静态库您可以轻松隐藏您是使用它,你可能不想要这两者。
    • 如果您有符号冲突(例如,由于多次链接到静态库,Rust 标准库可能就是这种情况),那么您可以将不同的代码库拆分为框架以分隔命名空间。李>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 2015-03-18
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多