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!
- 其他情况可不用。