静态库和动态库共同特点
- 闭源(如:支付宝的SDK, 微信的SDK, 高德地图SDK等)
- 看不到源码
- 提高编译速度
- MRC打的静态库,ARC可以直接用
静态库和动态库的区别
- 静态库两种
.a的静态库 .framework的静态库 - 动态库
.framework .dylib .tbd - 静态库:链接的时候, 会复制到可执行文件中,会有多份.
- 动态库:只有一份,运行时会动态加载到内存.
- 你自己使用动态库, 不容许上架。企业级应用才可以使用动态库
静态库制作
- 创建时选择
Static Library
- 设置项里开放头文件,release/debug版本
- 如果需要适配iPhone 5以下设备,选择
Build Active Architeture Only
选择NO
,表示并非仅所选设备的架构 - 合并真机和模拟器版本
lipo -create ***.a ****.a -output *****.a
- Framework静态库大致相同,只不过打包方式不一样。需要
Build Settings
设置Mach-O Type
为Static Library
。默认创建的Framework为dynamically
- 如果使用时,奔溃信息为
image not found
,用file [filePath]
查Framework二进制文件如果查看到Mach-O 64-bit dynamically...