1,
Build Active Architecture Only 属性
这个属性设置Debug为Yes,是为了Debug的时候编译速度更快,它只编译当前的architecture版本。
而设置Release为No时,会编译所有的版本。
比如:Valid A
rchitectures 属性中Debug对应值有:arm64 armv7 armv7s
表示xcode可以编译运行iPhone设备为
arm64 armv7 armv7s
的机型。如果当前链接xcode的是iPhone6s设备(arm64机型),当
Build Active Architecture Only属性中Debug 设置Yes, 那么说明本次在build的Debu环境下编译运行出的版本只支持:
arm64的版本,由于arm64向下兼容的关系,他能够在armv7 armv7s的机型(也就是iPhone4 5)运行。
如果设置为No,那么会编译生成的版本能够支持:
arm64 armv7 armv7s (
Valid A
rchitectures里面所有版本)。
注明:同样Release属性的设置与Debug一样理解;因此我们在开发中,常常将Xcode的
Build Active Architecture Only属性,Debug–>Yes, Release–>No,就是为了在开发运行时,减轻编译运行负担缩短运行时间,在做发布App(Release)的时候因为要适应大多数机型,所以应该启用Release–>Yes,去编译运行生成支持
arm64 armv7 armv7s (
Valid A
rchitectures里面所有版本)设备。
2,
Valid A
rchitectures 属性
在1中已经大概介绍了,就是表示Xcode能够编译生成支持哪些机型版本。
Valid A
rchitectures值为
arm64,表示只能编译生成
arm64的版本
Valid A
rchitectures值为
arm64 armv7 armv7s ,表示能编译生成支持
arm64 armv7 armv7s三种版本。
说明:
armv6:iPhone 2G/3G,iPod 1G/2G
armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G
armv7s:iPhone5, iPod5
arm64:iphone5s ,iphone6及plus 等最新机型
兼容原理:向下兼容,也就是说
armv6(基本淘汰)的版本能够在所有机型中运行此版本的app。
armv7s版本适应iPhone5及6等新机型运行,iPhone4、4s不能运行。arm64版本的app只能在iPhone5s/6/6p/6s/6ps中运行(包含新款的ipad设备,具体哪些可以百度了解,在这里不多说)。