iOS 关于静态库 支持设备检测及相关
1. 检测方法:
lipo -info <静态方法名称.a>
2. 对应 的方法比对:
iphone (模拟器测试、真机测试) | 处理器 (32位,64位)
3. 指令集
arm64:
真机64位处理器需要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:
真机32位处理器需要armv7, 或者armv7s架构,
iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
i386
针对intel通用微处理器32位处理器
模拟器32位处理器测试需要i386架构
x86_64
针对x86架构的64位处理器
模拟器64位处理器测试需要x86_64架构
注意:⚠️⚠️⚠️⚠️
iphone 5s 比较特殊,需要同时支持 32位 和 64位 ,打包的时候需要包含 armv7s 指令集,不然会影响 部分iphone 5s 设备安装 (安装失败之类)
4. 静态库 合并 方法
lipo -create XXXX_V7.a XXXX_V7s.a -output XXXX_all.a
相关问题:
1. 包太大,可以减少指令集(32位 及 模拟器 指令集),但是要注意你需要支持的设备。
2. Build Active Architecture Only (指定是否只对当前连接设备所支持的指令集编译)
YES: debug的时候编译速度更快,它只编译当前的architecture版本
NO: 会编译所有的版本
所以,一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备。
附加,判断是否为模拟器. 可以把只支持真机的 静态库放进去
#if TARGET_IPHONE_SIMULATOR
#endif
网友评论