1、Architecture (iPhone 指硬件架构)
iphone 1,2,3 是armv6
iphone4,4s 是 armv7
iphone5,5c是armv7s
iphone 5s, 6, 6+, 6s, 6s+ 是arm64
Simulator 不是arm架构而是x86指令集(或i386)
2、Xcode -> Architecture 相关
Architectures : 标准的架构(包括armv7,arm64)
- 这个编译选项指定了工程将被编译成支持哪些指令集,支持的指令集数目越多,编译出的二进制数据包越多,造成最终编译的ipa越大。
Valid Architectures : 有效的架构
- 该编译项指定可能支持的指令集,该列表和Architectures列表的交集,将是Xcode最终生成二进制包所支持的指令集。
- 比如,你的Valid Architectures设置的支持arm指令集版本有:armv7/armv7s/arm64,对应的Architectures设置的支持arm指令集版本有:armv7s,这时Xcode只会生成一个armv7s指令集的二进制包。
Build Active Architecture Only
- 该编译项用于设置是否只编译当前使用的设备对应的arm指令集。
- 通常情况下,该编译选项在Debug模式都设成YES,Release模式都设成NO。
但最终上线时,Apple会为我们的APP重新打包,这样不同Architecture的iphone下载各自对应的ipa,所以并不会影响线上包的大小
所以这些编译选项大多是对我们的平时开发的测试包产生影响