xcodebuild命令行忽略GCC_PREPROCESSOR_DEFINITIONS



我正在尝试使用不同的预处理宏启动xcodebuild。

我试过:

xcodebuild -scheme myscheme 
           -configuration "Archive" 
           -sdk "iphoneos5.1" 
           archive 
           CONFIGURATION_BUILD_DIR=../build 
           GCC_PREPROCESSOR_DEFINITIONS=ADHOC

但由于没有使用预处理器,我出现了编译错误:

我看不到编译命令的-D标志

但它显示在脚本的开头

Build settings from command line:
        CONFIGURATION_BUILD_DIR = ../build
        GCC_PREPROCESSOR_DEFINITIONS = ADHOC
        SDKROOT = iphoneos5.1

编译错误的来源代码是:

#ifdef ADHOC
NSUInteger toto = 0;
#endif

但是toto 出现use of undeclared identifier错误

ps:如果我在Xcode中定义了预处理器宏,那么这些值就会被使用,我的值就会被覆盖,归档也就完成了。但我确实想基于不同的预处理器定义进行几个构建(对我来说,这听起来比创建新的构建配置或方案更好)

我必须使用双引号并删除$value。我有,

GCC_PREPROCESSOR_DEFINITIONS='$value ${e}', 

不起作用,但

GCC_PREPROCESSOR_DEFINITIONS="${e}" 

工作。

其中,e是循环内的变量,

environments=("TEST1" "TEST2" "TEST3" "TEST4" "TEST5" "PROD")
for e in "${environments[@]}"
   do
....... commands
   done

如果我使用

GCC_PREPROCESSOR_DEFINITIONS='$value ${e}'

然后我必须使用

GCC_PREPROCESSOR_DEFINITIONS='$value ADHOC=1'

这在一个构建脚本中起作用。

最新更新