iOS use_frameworks!用与不用的区别

Swift 项目中的 Podfile 中默认会有一个 use_frameworks!,本篇说一下 use_frameworks!。

  1. Pod 引入组件的类型
    iOS 使用 Pod 引入组件,主要引入以下类型的组件。

类型 1:静态库类型组件。可以为 .a.framework 类型的静态库。
类型 2:动态库类型组件。可以为 .framework 类型的动态库。
类型 3:源码类型组件。
对于源码类型的组件,pod 引入组件时,会先将源码打包成 .a 或 .framework 类型的静态库或者动态库,然后这些 静态库 或 动态库 随着编译一起放在二进制可执行文件内。

  1. use_frameworks! 的功能
    use_frameworks!常用的形式

use_frameworks! :linkage => :static # 将引入的源码组件打包成静态库。只对源码组件有效
use_frameworks! :linkage => :dynamic # 将引入的源码组件打包成动态库。只对源码组件有效
use_frameworks! # 根据 pod 类型来决定应该打包成静态库还是动态库。

use_frameworks! # 不使用

使用 use_frameworks! 时,如果没有指定源码库打包类型,则会根据对应组件的 podspec 文件中的设置来决定。设置字段如下:
s.static_framework = true/false

  1. OC和Swift项目
    Swift项目:

必须使用 use_frameworks!
OC 项目:

可选使用 use_frameworks!
如果引入了 Swift 三方库,则使用
引入的全是 OC 三方库,则可以不用
总之:

pod 引入了 Swift 的源码三方库,就使用 use_frameworks!
引入了 dynamic framework 时,使用 user_framework!
其他情况可不用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容