Xcode中的Architectures设置

2014-03-12 Xiaosong Gao 更多博文 » 博客 » GitHub »

iOS

原文链接 https://gaoxiaosong.github.io/2014/03/12/set-architectures-in-xcode.html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


目前iOS的指令集有以下几种:

  • armv6: 支持的机器iPhone 1/2/3, iPod Touch 1G, iPod Touch 2G。
  • armv7: 支持的机器iPhone 3GS/4/4S, iPod Touch 3G/4G, iPad 1/2/3。
  • armv7s: 支持的机器iPhone 5/5C。
  • arm64: 支持的机器iPhone 5S。

机器对指令集的支持是向下兼容的,因此armv7的指令集是可以运行在iPhone 5S的,只是效率没那么高而已。

名词解释:

  • Architecture: 指你想支持的指令集。现在一般选择armv7, armv7s, arm64。(选arm64时需要最低支持5.1.1)
  • Valid architectures: 指即将编译的指令集。
  • Build Active Architecture Only: 只是否只编译当前适用的指令集。

注意事项:

  • 如果想自己的APP在各个机器都能够最高效率的运行, 则需要将Build Active Architecture Only改为NO, Valid Architectures选择对应的指令集armv7, armv7s, arm64。这个会为各个指令集编译对应的代码,因此最后的.ipa体积基本翻了3倍。(如果不在乎APP大小的话, 应该这样做)
  • 如果想让APP体积保持最小,则现阶段应该选择Valid Architectures为armv7, 这样Build Active Architecture Only选YES或NO就无所谓了。