要求支持指令集:i386 x86_64 armv7 armv7s arm64
1.lipo的使用
-
查看framework或.a库的架构支持信息
lipo -info [可执行文件路径]
-
合并真机和模拟器的framework
lipo -create [模拟器framework可执行文件路径] [真机framework可执行文件路径] -output [查看framewrok或.a库的支持]
-
提取特定的CPU架构的thin文件
lipo xxxx -thin cpu(armv7/arm64等) -output xxxx
-
移除特定的CPU架构文件
lipo -remove cpu(armv7/arm64等) xxxx -output xxxx
2.指令集对应架构类型
模拟器32位处理器测试需要i386架构;
模拟器64位处理器测试需要x86_64架构;
真机32位处理器需要armv7,或者armv7s架构;
真机64位处理器需要arm64架构。
arm64
支持 iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)
armv7s
支持 iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7
支持 iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
i386
针对intel通用微处理器32位处理器
x86_64
针对x86架构的64位处理器
3.Xcode相关配置
Architectures:该选项指定工程可被编译成支持何种指令集的数据包。由于工程会针对每一种指令集编译出对应的二进制数据包,所以支持的指令集越多,对应生成的ipa包就越大。
Valid Architectures:限制了工程可支持的指令集范围。即,工程最终支持的指令集在valid architectures定义的这个范围之内,所以工程最终编译出的包支持的指令集将由Architetures和Valid Architectures选项定义的指令集的交集决定。
Build Active Architecture Only:设定是否只编译出当前连接设备所支持的指令集。一般,debug的时候可指定为YES,为了debug的时候编译速度快;release的时候指定为NO,以适应不同的设备。