2010-04-18 82 views
1

我打算用Xcode构建用Obj-C编写的Mac应用程序。为了论证的缘故,假设它有10个可选功能。我需要一种方法来启用或禁用这些功能来创建应用程序的自定义构建。这些版本将自动化(很可能通过Mac OS X终端),所以我需要一种方法来说明在构建时启用/禁用哪些功能(配置文件或CLI参数将是理想的。)创建Xcode项目的自定义构建

那么完成这个的最好方法是什么?我试图在开始编码之前就计划好这一点,以便在代码库中有适当的分离以允许这些功能来来去去。理想情况下,自定义构建将只包含应具有的功能的编译代码。换句话说,我不想总是编译所有的功能,并在运行时将它们排除在外。

回答

3

您可以为此使用Xcode配置;例如,对于每种配置,您都可以包含不同的前缀头文件。然后你可以通过xcodebuild从命令行触发构建。

如果您更喜欢配置文件方法,则可以使用.xcconfig文件来定义任何Xcode构建设置。

Xcode构建系统指南describes这两种方法。

+0

我不认为手动创建为每个组合的结构是非常合理的:HTTP ://www.wolframalpha.com/input/?i =组合+的+ 10 我d不想让1024配置:-) 但我会看看.xcconfig文件的想法。谢谢! – macinjosh 2010-04-19 17:05:15

+0

@macinjosh你有没有办法做到这一点? – 2015-10-15 05:14:50

0

在编译器标志下使用#ifdef和-D标志来控制是否编译了内容或外部内容。如果你愿意的话,你可以用这种方式设置很多不同的配置,并且只需要让xcode构建配置很好地工作即可。

#include <stdio.h> 

int 
main (void) 
{ 
#ifdef TEST 
    printf ("Test mode\n"); 
#endif 
    printf ("Running...\n"); 
    return 0; 
} 

输出1:

$ gcc -Wall -DTEST dtest.c 
$ ./a.out 
Test mode 
Running... 

输出2:

$ gcc -Wall dtest.c 
$ ./a.out 
Running... 

源:http://www.network-theory.co.uk/docs/gccintro/gccintro_34.html