iPhone 指令集
各个 CPU 架构支持 iPhone 机型如下:
ARMv6:iPhone、iPhone 3G、iPod 1G/2G;
ARMv7:iPhone 3GS、iPhone 4、iPhone 4S、iPod 3G/4G/5G、iPad、iPad 2、iPad 3、iPad Mini;
ARMv7s:iPhone 5、iPhone 5C、iPad 4;
ARMv8/ARM64:iPhone 5S、iPad Air、Retina iPad Mini、iPhone 6 之后机型;
可以在 Xcode Build Setting-> Architectures 查看当前 Project 支持的 CPU 指令集。
对于一些“老旧”的机型,可以选择不支持他们的指令集来减少 App 打包 体积;
Build Active Architecture Only 选项用于设置是否只编译当前使用设备对应的 ARM 指令集。当选择YES设置时,若你当前连接运行 ARMv7 指令集的设备,只会生成 ARMv7 指令集的包。
通常情况下,在 Debug 模式设置 YES,在 Release 模式设置 NO;
指令集都是向下兼容的。比如,你的设备是armv7s指令集,那么它也可以兼容运行比armv7s版本低的指令集:armv7、armv6。
Xcode 4.5 起不再支持 ARMv6 指令集。
如果App对包大小很敏感,可以通过减少安装包中指令集的数量来试下。
例如,iPhone 5及之前设备在世面上已经很少见了,毕竟已经发布了近十年了,目前可以选择去除 ARMv7,只保留 ARM64 的指令集,目前所看的市面上主流的App如支付宝、微信(iOS12+)、抖音、百度地图....都已经支持 iPhone 5S 以上设备了,不再支持更早的机型。