代码之家  ›  专栏  ›  技术社区  ›  Jaka Jančar

xcodebuild-如何定义预处理器宏?

  •  21
  • Jaka Jančar  · 技术社区  · 14 年前

    使用xcodebuild时,如何定义预处理器宏?

    我需要使用一系列不同的配置来构建我的应用程序,我希望使用一个shell脚本来实现这一点,该脚本使用不同的预处理器宏运行xcodebuild多次。

    2 回复  |  直到 12 年前
        1
  •  18
  •   kennytm    14 年前

    Cmd+I在项目上打开信息对话框。然后在“构建”选项卡中,找到“预处理器宏”设置。 在那里添加宏。

    …您可以在其中找到设置名称 GCC_PREPROCESSOR_DEFINITIONS ,以便您可以添加

    GCC_PREPROCESSOR_DEFINITIONS="foo=bar"
    

    到xcodebuild参数。

        2
  •  34
  •   lhunath    12 年前

    你通过了 GCC_PREPROCESSOR_DEFINITIONS xcodebuild 命令行。

    记住,参数将针对shell(如分词和引号处理)进行重新评估,因此需要小心,尤其是当宏值不仅仅是简单的时候。 1 s(例如nsstring文本)。

    同样重要的是扩大 GCC预处理器定义 在您设置的值内(单引号,这样脚本不会展开它,但构建的外壳会展开它),否则您将丢失项目对此属性的构建设置。

    下面的代码将您的定义放入一个漂亮的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[@]}")"