(IOS)关于Xcode的架构(Architectures)设置

首先来了解一下Architectures中几个参数的含义

ARMv6:ARM11内核用于iPhone2G和iPhone3G中的架构 

ARMv7:modern ARM内核用于iPhone3GS和iPhone4/S中的架构 

ARMv7s:A6内核用于iPhone5中的架构 

ARM64:A7内核用于iPhone5S/C中的架构 

 

然后在Xcodebuild settingArchitectures一栏中有几个比较重要的选项,而代码的编译架构一般设置以下两项:ArchitecturesValid Architectures。其中Architectures是指项目编译时生成哪几个架构的二进制指令,项目建成时会自动选择,但在Xcode5中其选择的结果是默认包含ARM64,若果项目使用没有在ARM64上编译的第三方库,通常会有很多错误或告警而编译不过,这时就必须将ARM64去掉,即选择armv7 armv7s,因为ARM的指令是向前兼容的,即使这样选择也能在iPhone5S/C上运行。

但在Valid Architectures一项中,必须选上你要支持的具体架构类型,比如这项没有arm64的话就不能在iPhone5S/C上运行了。

这里我猜测在Architectures选上最新的架构是为了app能使用架构对应的新硬件功能或提升运行效率,而库文件的架构则必须统一。而它尽管向前兼容,但有对应架构的二进制指令可能效率会最优。暂时没有找到文献,得到证据后补上。

文献地址:http://www.mobinett.com/2013/09/20/ios-7-xcode-5-project-build-settings-for-architectures-and-arm64-support/

posted @ 2014-02-26 16:39  MingFung_Liu  阅读(4004)  评论(2编辑  收藏  举报