user_frameswork!
用cocoapods导入swift框架到swift项目和OC项目都必须要user_framework!
user_framework!放于target之后,否则引入swift系统库会丢失一些方法,如UIImage的扩展方法
target 'xxx' do
use_frameworks!
pod 'xxx', :path => '../'
end
user_frameworks!:linkage=>static
将引入的源码组件打包成静态库,只对源码组件有效
use_frameworks! :linkage => :dynamic
将引入的源码组件打包成动态库。只对源码组件有效
use_frameworks!
根据 pod 类型来决定应该打包成静态库还是动态库。
简单了解下Mach-O,可通过xcode的build setting查询 Type,开发者制作库的时候会有几种选择
-
Executable:
静态库
,输出二进制 -
Dynamic Library:
动态非共享库
,输出动态链接库非共享库,程序运行
时链接到`内存,大部分场景下不可共享;app extension、部分macOS场景下可以共享 -
Bundle:
动态非共享库
,和Dynamic Library相近,不过需要手动调用函数加载 -
Static Library:
静态库
,输出静态链接库,程序编译
时拷贝到内存
-
Relocatable Object File:
静态库
,和Static Library类似,但体积更小
网友评论