如何在使用xcodebuild时定义预处理器宏?
我需要使用一堆不同的配置构建我的应用程序,我想使用shell脚本执行此操作,该脚本使用不同的预处理器宏多次运行xcodebuild。
答案 0 :(得分:34)
您在GCC_PREPROCESSOR_DEFINITIONS
命令行上传递xcodebuild
。
请记住,对于类似shell的单词拆分和引用处理,将重新评估参数,因此您需要小心,尤其是当您的宏值不仅仅是简单的1
时(例如, NSString文字)。
同样重要的是在您设置的值内展开GCC_PREPROCESSOR_DEFINITIONS
(单引号,因此您的脚本不会扩展它,但构建的shell会扩展它),否则您将&#39} ; ll会丢失此属性的项目构建设置。
以下代码将您的定义放在一个漂亮的bash数组中,然后在xcodebuild
命令行中扩展数组,以便shell转换得很好:
defines=( TESTING=1 'IWISH_HOST=@"http://192.168.0.101:8080"' )
xcodebuild -verbose -scheme "MyAppScheme" \
GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS '"$(printf '%q ' "${defines[@]}")"
答案 1 :(得分:18)
项目中的Cmd + I打开“信息”对话框。然后在“Build”选项卡中,找到“Preprocessor Macros”设置。 在那里添加宏。
...您可以在哪里找到设置名称为GCC_PREPROCESSOR_DEFINITIONS
,因此您可以添加
GCC_PREPROCESSOR_DEFINITIONS="foo=bar"
到xcodebuild参数。