Architectures
这代表,在这个项目里你想要Xcode编译的目标设备列表。
Valid Architectures
还不是太明确这个设置的意图,但是一般来说是不需要更改的。
在Xcode5.0里的Valid Architectures 设置里,有2个选项:
默认为
standard architectures (including 64-bit)(armv7,armv7s,arm64)
,这样设置,你的Deployment target最低只能设置为 6.0,(在Xcode5.0.1 之后,最低能够兼容IOS 5.1.1);standard architectures (armv7,armv7s)
,这样设置,你的Deployment target最低能设置为 4.3;
原因解释如下:
使用standard architectures (including 64-bit)(armv7,armv7s,arm64)参数,
则打的包里面有32位、64位两份代码, 在iPhone5s(iPhone5s的cpu是64位的
)下,会首选运行64位代码包, 其余的iPhone(其余iPhone都是32位的,iPhone5c也是32位
), 只能运行32位包, 但是包含两种架构的代码包,只有运行在ios6,ios7系统上。 这也就是说,这种打包方式,对手机几乎没啥要求,但是对系统有要求,即ios6以上。 而使用standard architectures (armv7,armv7s)参数,
则打的包里只有32位代码, iPhone5s的cpu是64位,但是可以兼容32位代码,即可以运行32位代码。但是这会降低iPhone5s的性能,原因下面的参考有解释。 其余的iPhone对32位代码包更没问题, 而32位代码包,对系统也几乎也没什么限制。所以总结如下:
要发挥iPhone5s的64位性能,就要包含64位包,那么系统最低要求为ios6。 如果要兼容ios5以及更低的系统,只能打32位的包,系统都能通用,但是会丧失iPhone5s的性能。