Xcode中的Architectures探讨

Arm是处理器,是移动设备上占用率最大的处理器。 
armv6、armv7、armv7s、arm64都是arm处理器的指令集。通常指令是向下兼容的。在模拟器运行时,iOS模拟器运行的是x86指令集。只有在真机上,才会对执行arm指令集。

在Xcode中可以通过Architectures指定要编译的体系结构。如下图所示,主要包括了四个参数:Architectures、Build Active Architecture Only、Suppported Platforms、Vaild Architectures。


Architectures

Architectures:是指编译时支持的指令集,不同的设备对应不同的指令集,主要有(armv6、armv7、armv7s、armv8/arm64等),Architectures也可以理解为支持哪些设备,不同指令集对应的设备如下。原则上选择的Target多,会造成生成的包比较大。

armv8/arm64: iPhone 5S /  6 / 6Puls / 6S / 6s Plus, iPad Air(2), Retina iPad Mini(2, 3)
armv7s: iPhone 5, iPhone 5C, iPad 4, iPod5
armv7: iPhone 3GS / 4 / 4S, iPod 3G / 4G / 5G, iPad(1, 2, 3), iPad Mini   
armv6: iPhone, iPhone 3G, iPod 1G / 2G 

Build Active Architecture Only

Build Active Architecture Only:是否只编译当前设备适用的指令集。如果这个参数设置为YES,当我们用iPhone6进行调试时,会生成一个支持arm64指令集的Binary;如果用iPhone4进行编译,最终会生成一个支持armv7指令的Binary。设置为YES时,会只编译当前的Architecture版本,速度会更快,设置为NO时,会编译所有的版本,速度会慢,所以,我们一般在debug模式设置为YES,在release模式设置为NO。

Suppported Platforms

支持哪些平台,iOS设备、mac设备、tv设备、watch设备等。


Vaild Architectures

限制可能被支持的指令集范围,生成的包里,是Valid Architectures与Architectures的交集。默认为Standard architectures(armv7,armv7s,arm64),如果你想改的话,自己在other中更改。一般不需要改,和Architectures一样就行。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值