我正在尝试使用不同的预处理宏启动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'
这在一个构建脚本中起作用。