- 静态库:.framework、 .a
- 动态库:.framework、 .tbd
查看某一类库的的架构命令:
lipo -info [静态库名]
iOS真机和模拟器架构
1 | 模拟器架构: |
.a静态库创建
- 创建一个项目,创建项目的时候选择:
Framework/Library
- 项目的名称就是静态库的名称
- 项目创建好之后,添加代码
- 选择真机和模拟器分别编译一次
- 如果项目中
Products
文件夹下的.a文件变黑,说明静态库创建成功
创建静态库的时候,创建所有的库(i386、x86_64、arm64)
1 | target -> Build Settings -> Build Active Architecture Only -> Debug -> No |
创建库的时候添加其它的设备架构
1 | target -> Build Settings -> Architectures -> Others -> + |
合并两个类库
1 | lipo -create [要合并的库A的路径] [要合并的库B的路径] -output [合并后新库的路径] |
注意
- 真机和模拟器合并类库的时候,如果类库小则合并,否则不要合并
- 当使用资源时,应该手动导入bundle包;在代码中加载资源包文件时,应该加上资源包的路径
Framework库
- Xcode 默认创建的自定义库是动态库
- framework库和.a 库创建的过程相似
- 项目中使用framework动态库后,不能在AppStore中上线
framework动态库的使用
导入动态库framework需要做下面操作,否则启动会报错targets -> general -> Embedded Binaries中添加framework.动态库
将默认的动态修改为静态的操作:选中项目 ->targets ->Build Settings -> 搜索mach -> 修改为静态库(Static Library)
framework库中添加公开头文件
1 | framework -> headers -> Private中的头文件拖到Public |