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