当使用xcodebuild时如何定义预处理器宏?
我需要使用许多不同的配置来构建我的应用程序,并且我想使用一个shell脚本来运行多次xcodebuild并使用不同的预处理器宏。
当使用xcodebuild时如何定义预处理器宏?
我需要使用许多不同的配置来构建我的应用程序,并且我想使用一个shell脚本来运行多次xcodebuild并使用不同的预处理器宏。
你需要在 xcodebuild
命令行中传递 GCC_PREPROCESSOR_DEFINITIONS
参数。
请注意,该参数会被重新评估以进行类似于 shell 的单词拆分和引号处理,因此您需要小心,特别是当您的宏值不仅仅是简单的 1
时(例如 NSString 字面量)。
同样重要的是,在您设置的值中扩展 GCC_PREPROCESSOR_DEFINITIONS
(使用单引号,这样您的脚本就不会将其扩展,而是由构建的 shell 进行扩展),否则您将失去此属性的项目构建设置。
以下代码将您的定义放入一个漂亮的 bash 数组中,然后按照一种 shell 东西得到良好转义的方式在 xcodebuild
命令行中扩展该数组:
defines=( TESTING=1 'IWISH_HOST=@"http://192.168.0.101:8080"' )
xcodebuild -verbose -scheme "MyAppScheme" \
GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS '"$(printf '%q ' "${defines[@]}")"
#ifdef COOL_FEATURE_ENABLED NSLog(@"Cool feature enabled in this build."); #endif
。对于命令行构建,您将会使用:xcodebuild -verbose -scheme "MyAppScheme" GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS COOL_FEATURE_ENABLED=1'
。 - Goffredo按下Cmd + I打开信息对话框。然后在“Build”选项卡中找到“Preprocessor Macros”设置。
...您可以在那里找到设置名称GCC_PREPROCESSOR_DEFINITIONS
,因此您可以添加宏。
GCC_PREPROCESSOR_DEFINITIONS="foo=bar"
添加到xcodebuild参数中。