使用 xcodebuild 时如何定义预处理器宏?
我需要使用一堆不同的配置来构建我的应用程序,并且我想使用一个 shell 脚本来执行此操作,该脚本使用不同的预处理器宏多次运行 xcodebuild。
使用 xcodebuild 时如何定义预处理器宏?
我需要使用一堆不同的配置来构建我的应用程序,并且我想使用一个 shell 脚本来执行此操作,该脚本使用不同的预处理器宏多次运行 xcodebuild。
GCC_PREPROCESSOR_DEFINITIONS
你在xcodebuild
命令行上传递。
请记住,该参数将被重新评估以进行类似 shell 的分词和引号处理,因此您需要小心,特别是当您的宏值不仅仅是简单1
的 s(例如 NSString 文字)时。
同样重要的是扩展GCC_PREPROCESSOR_DEFINITIONS
您设置的值的内部(单引号,因此您的脚本不会扩展它,但构建的外壳会扩展它),否则您将丢失项目的此属性的构建设置。
以下代码将您的定义放入一个不错的 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[@]}")"
Cmd + I 在项目上打开信息对话框。然后在“构建”选项卡中,找到“预处理器宏”设置。在那里添加宏。
...您可以在哪里找到设置名称GCC_PREPROCESSOR_DEFINITIONS
,因此您可以添加
GCC_PREPROCESSOR_DEFINITIONS="foo=bar"
到 xcodebuild 参数。