xcodebuild命令行忽略GCC_PREPROCESSOR_DEFINITIONS

时间:2012-03-22 16:11:14

标签: ios xcode4 xcodebuild xcode4.3

我正在尝试使用不同的预处理宏启动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

use of undeclared identifier

出现toto错误

ps:如果我在Xcode中定义预处理器宏,则使用这些值,重写我的,并完成归档。但我确实希望根据不同的预处理器定义进行多次构建(这听起来比创建新的构建配置或方案更好)

1 个答案:

答案 0 :(得分:2)

我必须使用双引号并删除$ 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'

这适用于构建脚本之一。