Xcode 6.1版本在新建一个工程的时候,会给我们做一些默认的Build Settings,其中有一种很重要的就是Architecture的设置,先来看一张图片,如下所示:
在第二行的Architectures中,设置的是标准的架构,里面包括armv7,arm64.这个编译选项指定了工程将被编译成支持哪些指令集,支持指令集是通过编译生成对应的二进制数据包实现的,如果支持的指令集数目有多个,就会编译出包含多个指令集代码的数据包,造成最终编译的包很大。
最下面一行蓝色显示的Valid Architectures 这个列表指定的可支持的指令集和Architectures中的指令集的交集,将是xcode最终生成的二进制的包所支持的指令集。
上面结果的指令集交集是arm64和armv7,因此生产的最终二进制包能够支持的指令集就是这两种。
还有一个Build Active Architecture Only 这里是个bool值。这个编译用于设置是否编译当前使用的设备对应的arm指令集。比如你在调试的时候用的设备是iPhone5,那么编译生成的就会是iPhone5所支持的arm指令集,也就是arm64.前提是你xcode成功连接设备,并且该值设为YES的情况,如果你没连接上设备,那么就算这个值设置为YES,生成的二进制所支持的arm指令集,还是那两者之间的交集。通常情况下你在Debug版本时候可以