前序
静态库:是对功能性代码的封装,后缀包括.a和.framework.
模拟器和真机的ARM处理器指令集
ARM处理器,特点是体积小,低功耗,低成本,高性能,所以几乎所有手机处理器都基于ARM,在嵌入式系统中应用广泛.
i386|x86_64,是mac处理器的指令集:
i386是针对intel通用微处理器32架构的,x86_64是针对x86架构的64位处理器,是模拟器编译静态库所支持的架构.
支持的模拟器:
i386:4s~5c
x86_64:5s以上
armv6,armv7,armv7s,arm64,是ARM上的指令集:
所有指令集原则上都是向下兼容的,如iPhone4S的CPU默认指令集为armv7指令集,但它同时也兼容armv6指令集,只是使用armv6指令集时无法充分发挥其性能,即无法使用armv7指令集中的新特性,同理,iPhone5的处理器标配armv7s指令集,同时也支持armv7指令集,只是无法进行相关的性能优化,从而导致程序的执行效率没那么高.
支持的真机:
armv6:iPhone 2G/3G,iPod 1G/2G
armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G
armv7s:iPhone5,iPhone5c,iPad4
arm64:iPhone5s之后,iPad mini2,iPad air.
查看静态库支持的架构
在终端输入:lipo -info 所在路径/xxx.a或者lipo -info 所在路径/xxx.framework
静态库合并
终端操作:
.framework:
lipo -create 模拟器所在的路径/xxx.framework/xxx(白板文件) 真机所在路径/xxx.framework/xxx(白板文件) -output 合并二进制保存路径/xxx
然后任意替换模拟器或者真机中的xxx二进制白板文件.
.a:
lipo -create 模拟器所在的路径/xxx.a 真机所在路径/xxx.a -output 合并二进制保存路径/xxx.a
查看合并后支持架构,再次在终端输入: lipo -info 所在路径/xxx.a或者lipo -info 所在路径/xxx.framework