xcode中Target的设置不同于Project的设置。target的设置会覆盖project的设置,所以最好通过Target的设置确认配置。
Xcode Target
Target指定一个编译的
产品,
Target中包含一些指令,这些指令是关于如何调用在一个工程或者工作区的文件集合来编译这个
产品的。一个Target定一个单独的产品;它管理组织在这个编译系统中,需要用来编译这个产品的输入(输入既是源文件和处理这些源文件的指令)。
用来编译这个产品的指令,是以'编译设置'
(build settings)和'编译阶段'
(build phases)这两个形式存在,你在Xcode的工程编辑器中可以查看和编辑这两项。
(ps:也就是你通过修改这两个内容来达到编辑工程指令的目的,你就是用这种方式来修改和输入编译指令的)
Target 沿袭工程编译设置内容,但是你可以在Targe层通过指定不同的属性设置来重写任何工程设置。同一时间只能存在一个活动的Target;
Xcode Scheme 指定活动的Target。
Target 以及它所制定的产品可以与另一个Target相关联,如果一个Target需要依赖另一个Target的输出才能编译的话,前者既是依赖于后者的。如果两个Target都是在同一个工作区,Xcode可以发现这个依赖关系,进而以一个正确的顺序编译它们。这种关系被定义为:隐含依赖。你也可以在你的编译设置
(build settings)中指定明显的Target依赖,你可以指定在Xcode可能会期望两个target中存在隐含依赖的关系为非依赖关系。例如,你可能编译一个库文件和一个程序文件,程序文件内部链接了这个库文件,那么Xcode会发现这个这个关系并且自动先编译库文件。然而,如果你事实上想要链接的不是此版本的库文件 ,也就是不想链接这个库文件新编译出来的,你可以在你的编译设置(build settings)里创建一个明显的依赖关系,来覆盖这个隐含依赖。