一、 Architectures设置
Architectures.pngArchitectures: 是指项目默认将会支持的arm处理器架构。默认是Standard architectures,包含了armv7(32位处理器)和arm64(64位处理器)。
Build Active Architecture Only: 是否只为当前连接的(活跃的)手机生成二进制包。一般Debug 设置为YES, Release设置为NO。 Debug时一般只会连接一个手机,这时设置为YES, 就只会生成这个手机处理器指令集的二进制包,这样debug时比较快。但Release时是需要发布ipa包给各种各样的手机使用的,所以必须设置NO为所有指令集的手机生成二进制包。
Valid Architectures:有效的指令集架构,设置这个项目只会生成哪些指令集对应的二进制包。因为我们有armv7 、armv7s、arm64这三种指令集的CPU。
如果我们设置了有效的指令集是armv7,那么所有的手机都可以使用,只是高版本的手机并没有发挥它的高效能而已。但是如果只设置了支持arm64,因为低版本的手机并不支持arm64这种高效的指令集,所以低版本的手机将不能使用该app。 通常我们会设置为armv7和arm64。 iPhone5C 是armv7s的指令集,由于高指令集有向下兼容的特性,所以这样的设置在iPhone5C 上只能发挥armv7的效果(iPhone5C 不支持arm64指令集,但能支持armv7)。
我们的项目支持哪些指令集要看 Architectures 和 Valid Architectures的交集。
二、设置项目运行模式
设置我们的项目是debug模式运行还是release模式运行
-
点击Edit Scheme进入编辑模式
Edit Scheme.png -
依次设置我们的项目(或ipa包)run、test、profile、Analyze、Acrhive时的模式。一般在开发阶段都设置为Debug, 在发布ipa时设置为Release.
设置ipa运行模式.png
三、项目运行时的优化程度
在优化级别下面我们可以看到:
Debug模式: 编译器不会对我们的项目做任何优化(主要是NSLog是否打印)。
Release模式:编译器将进行优化,不再打印我们在项目中添加的NSLog等信息。
优化程度.png
所以我们在发布版本时应该全部设置为Release模式,有利于快速运行。当然不设置为Release模式也可以正常发布,只是优化没有那么明显。
注意:有时我们从SVN上下载一个新的项目版本时会发现NSLog和po都没有任何输出信息,这时就可以去检查下1.Edit Scheme是否为Debug模式 2. Optimizitation Level 下的Debug 是否为None。
网友评论