iOS:use_frameworks 的作用
Swift 项目中的 Podfile 中默认会有一个 use_frameworks!,本篇说一下 use_frameworks!。
1. Pod 引入组件的类型
iOS 使用 Pod 引入组件,主要引入以下类型的组件。
类型 1:静态库类型组件。可以为 `.a` 或 `.framework` 类型的静态库。
类型 2:动态库类型组件。可以为 `.framework` 类型的动态库。
类型 3:源码类型组件。
对于源码类型的组件,pod 引入组件时,会先将源码打包成 .a 或 .framework 类型的静态库或者动态库,然后这些 静态库 或 动态库 随着编译一起放在二进制可执行文件内。
2. 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
3. OC和Swift项目
Swift项目:
必须使用 use_frameworks!
OC 项目:
可选使用 use_frameworks!
如果引入了 Swift 三方库,则使用
引入的全是 OC 三方库,则可以不用
总之:
- pod 引入了 Swift 的源码三方库,就使用
use_frameworks! - 引入了
dynamic framework时,使用user_framework! - 其他情况可不用。

浙公网安备 33010602011771号