呈现方式
静态库:.a, .framework
动态库:.framework, .dylib(现在苹果改成了.tbd)
区别
静态库
- 编译时被链接到目标代码中,如果有多处引用存在多次冗余拷贝,占用内存
- 需要依赖.a+.h+资源
动态库
- 运行时调用,不会产生冗余调用,占用内存小
- framework文件可以直接使用
静态库架构及机型系统对照
静态库对应真机和模拟器两种形式,以下先列举下不同机型对应的架构:
- 模拟器
- iPhone4s~5 : i386
- iPhone5s~6plus : x86_64
- 真机
- iPhone3gs~4s : armv7
- iPhone5~5c : armv7s
- iPhone5s~6plus : arm64
- 机型和系统对照
- 4s: iOS6+
- 5: iOS6+
- 5s/5c: iOS7+
- 6: iOS8+
- 6s: iOS9+
生成静态库步骤
-
选择需要暴露的头文件,Build Parses->Copy Files添加,生成后在目录下的include里会找到这些文件
- command+B搞定
生成静态库命令
- 查看架构信息
lipo -info xx.a/aa.a
- 合并静态库,主要场景是在模拟器和真机需要合并时,
lipo -create xx.a yy.a -output zz.a
- 分离静态库,主要将三方提供的库拆解成自己想要的,
lipo xx.a -thin armv7 -output yy.a