一:常识:
1> 每一个手机都有属于自己的CPU,而每一个CPU都有属于自己的CPU架构(指令集)
2> 每一个静态库都有自己可以支持的架构
二:手机和模拟器使用的CPU架构
a> 模拟器CPU架构
iPhone4s-->iphone5 : i386
iphone5s-->iphone6s plus : x86_64
b> 真机CPU架构
iPhone3gs-->iphone4s : armv7
iphone5-->iphone5c : armv7s(如果一个静态库支持armv7架构,那么也可以跑在架构是armv7s的设备,没有对代码进行优化)
iPhone5s-->iPhone6s plus : arm64
三:常用的获取静态库支持架构以及合并静态库指令
a> 查看静态库支持的架构:lipo -info 静态库名称
b> 合并静态库:
lipo -create 静态库1 静态库2 -output 新的静态库
c> 合并好处,开发过程中既可以在真机上调试,也可以在模拟器上调试
d> 合并.a的坏处,如果静态库太大,合并打包后,会非常大,因此很多第三方的静态库的.a是区分版本的
今后在使用.a时一定注意版本
四:静态库文件的版本(4种)
1.真机-Debug版本
2.真机-Release版本
3.模拟器-Debug版本
4.模拟器-Release版本
调试版本(Debug版本) VS 发布版本(Release版本)
--------------------------------------------------------------------------------
- 调试版本会包含完整的符号信息,以方便调试
- 调试版本不会对代码进行优化
- 发布版本不会包含完整的符号信息
- 发布版本的执行代码是进行过优化的
- 发布版本的大小会比调试版本的略小
- 在执行速度方面,发布版本会更快些,但不意味着会有显著的提升