
关于Resource Tag和按需加载的详情内容和步骤参见下面两篇文章:
On-Demand Resources Guide中文版(按需加载资源--上)
On-Demand Resources Guide中文版(按需加载资源--下)
2.2.5 target的build setting属性设置
target的build setting选项卡的是最主要的一部分编译选项设置,配置界面如下图所示,界面只是截了一部分,完整的build settings共有20项配置内容。从配置界面上看,每一项的配置都有四列,我们可以看到,从左至右的顺序分别是:Resolved列、带Target图标列、带Project图标列、iOS Default列,每一列所代表的意义如下。

Resolved列:最终确定的编译方式,无法自己设定,其结果是根据其右边三栏的选择结果以及优先级顺序来确定最后编译时采用的编译方式。在图的第二行选项卡中选择combined选项,可以直接地看到只有该栏的最后结果。带Target图标列:target的build setting配置的编译选项,可自定义。其优先级最高,一旦进行设置,则最后的编译方式以该栏的结果为准。带Project图标列:project的build setting配置的编译选项,可自定义,这一栏的结果与project中build setting选项卡中的结果是一致的,修改其中一个地方,另一处也会自动修改。其优先级介于target和default之间,当target没有设置编译选项,而该栏进行了设置时,则最后的编译方式以该栏为准。 iOS Default列:在创建项目时系统自带的默认编译选项,无法修改。优先级最低,只有当其他两栏都没有设置选项时,最后的编译方式才会以该栏为准。优先级顺序:带Target图标列 >> 带Project图标列 >> iOS Default列。
target的build setting选项卡中的每一行具体所代表的编译详情参见:Xcode 编译选项详解。
2.2.6 target的build phase属性设置
target的build phase选项卡的的主要功能是配置编译器在不同编译阶段的参数,包括编译所需的资源文件(包括代码、配置以及各种资源文件),配置界面如下图所示,主要包括四方面的内容。

Target Dependencies Target对象依赖阶段:某些Target可能依赖某个Target输出的值,这里设置依赖。依赖于其他target的输出的时候,在编译时系统会自动先编译被依赖的target,得到输出值,再编译当前target。对象依赖阶段可以让Xcode知道必须在当前选择的对象编译之编译的其它依赖对象(比如应用扩展、插件等等)。这个阶段是无法被删除的。 Compile Sources 源文件编译阶段: 是指将有哪些源代码被编译,可以通过红框中的【+】【-】按钮进行添加或删除资源来控制编译的代码文件。并且可以通过修改改阶段的Compiler Flags(编译器标识)来为每个单独文件设置其编译器编织,比如优化设置等等。 Link Binary With Libraries 链接二进制库阶段:是指编译过程中会引用哪些库文件,我们同样可以通过【+】【-】按钮进行添加或删除编译所引用的库文件。 Copy Bundle Resources 复制资源文件阶段:是指生成的product的.app内将包含哪些资源文件,同样可以通过红框中的【+】【-】按钮进行添加或删除资源来控制编译的资源文件。该阶段定义了对象中的资源文件,包括应用程序、图标、界面构造器、视频、模板等等。这些资源都会被复制到安装包的Contents/Resources文件夹下。










