我正在尝试使用不同的预处理宏启动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中定义预处理器宏,则使用这些值,重写我的,并完成归档。但我确实希望根据不同的预处理器定义进行多次构建(这听起来比创建新的构建配置或方案更好)
答案 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'
这适用于构建脚本之一。