原文很精彩。地址:http://robnapier.net/blog/build-system-1-build-panel-360#more-360
我使用Xcode 3.2.5按照原文一步步走过来,结果略有不同,但无关紧要。
Xcode有一套先进的build system。再加少许改进,可使你的project更易于设置/维护,也可减少build时间。
Build Panel开始易用,但随着设置的复杂,其使用也会让人越来越迷惑。e.g.你要维护一份Legacy C++ Code,遇到了Thumb Code Generation和一个assembler的冲突,不得已要关掉Thumb。此时写些注释为上策,以防“后来者”无意之中打开Thumb。但是,Build Panel帮不了你,加不了注释。专门的Comments Panel是帮不了多大的忙的。
Xcode提供了更高级的解决方案:xcconfig文件。所有通过Build Panel可以做到的,xcconfig也可以。而且可以加注释。
1. 创建一个Window-Based的应用。
2. 给Project命名,选择存放目录。我放到了Prjoects目录下。
3. 检查Prjoect创建的目录。XccfgDemo已创建完毕。
4. 给Groups & Files创建一个新的Group,以存放所有的xcconfig文件。
5. 我命名其为:Build Configurations。
6. 添加一个新xcconfig文件到该Group。
7. 选择Configuration Settings File。
8. 命名新文件为:Shared.xcconfig。这里面以后要存放Debug和Release共享的配置。
9. 再创建三个。其中,Application.xcconfig专门用于Target的配置。
10. 双击Groups & Files里的工程名:XccfgDemo。会弹出Project Info panel,选择其中的Build页。然后,
按Cmd-A组合键,选中所有的配置。于是它们变成了下面的蓝色。再按Cmd-C拷贝到剪贴板。
11. 选择Debug.xcconfig文件,按Cmd-V把剪贴板里的内容复制到该文件。
12. 回到Build Panel,删掉刚才选中的所有配置。这样它们就恢复为默认值了。
13. 设置Show: All Settings,你会发现很多值变成了默认。在Build Panel选择右下角的Based On,选择Debug。你会发现原来的设置又回来了。
14. 依法炮制,再复制Release的设置,并清除Build Panel,然后选择新的Based On。
15. 双击你的Target,也就是Targests下默认生成的XccfgDemo。再按照10-14步,把Debug和Release都移到Application.xcconfig里。注意要加上注释,标明这两个独立的部分。
16. 选择Configuration: All Configurations,和Based On: Application。
现在设置都移到xcconfig文件里了,只是还有些混乱。下面来做个清理。
17. 先处理Application.xcconfig。把Debug里有的,Release没有的,都移到Debug.xcconfig里。同样,把Release里有的,Debug里没有的,移到Release.xcconfig里。二者都有的,删掉重复的部分,只留其一。
18. 再处理Debug.xcconfig和Release.xcconfig。把二者里都有的,移到Shared.xcconfig里。并且在Debug和Release里添加#include "Shared.xcconfig"。
现在,一切都结束了。看一下四个文件都是什么样子:
现在编译链接都应该没有问题的。
PS:如果你的文件和我不同,那我们都正确的可能性就小了些。