当在podfile
文件中使用use_frameworks!
指令时,CocoaPod在安装Pod时,会用framework方式组织资源(默认使用lib方式),同时该指令还提供扩展选项,指定动态framework或者静态framework
use_frameworks! #使用默认值,根据pod类型自行设置static或者dynamic
use_frameworks! :linkage => :static # 使用静态链接
use_frameworks! :linkage => :dynamic #使用动态链接
如果在podfile
中设置use_frameworks!
,又没有指定linkage => :static
或linkage => :dynamic
时,则会根据podspec
文件中的根配置static_framework = true/false
来设置。
另外,linkage => :static
或linkage => :dynamic
只对源码Pod有效,对已经是framework的pod不起作用。而且,如果pod中的framework是动态库,那么在pod install
后,会在相应的target的Build Phases
设置中添加[cp] Embed Pods Frameworks
脚本,以动态库的方式将framework输出到最终产物中。