如何在 xcode 构建命令中传递预处理器宏名称?

How do I pass preprocessor macro name in xcode build command?

我正在 CI 构建 azure devops。我想知道如何传递预处理器宏值,以便我可以制作不同风格的构建。

AFAIK 如果我们可以在 xcode build 中设置预处理器宏,那么我们也可以在 azure devops 上进行设置。

欢迎任何有帮助的指点

您可以创建一个 ruby 脚本来设置项目。 Xcodeproj 是修改 Xcode 项目的强大工具。

https://github.com/CocoaPods/Xcodeproj

方法一:通过GCC_PREPROCESSOR_DEFINITIONS

您必须在 xcodebuild 命令行上使用 GCC_PREPROCESSOR_DEFINITIONS

这是您代码中的示例宏

#ifdef Flavour1 

NSLog(@"This is flavour 1"); 

#endif

下面是通过命令行传递宏的方法

xcodebuild -verbose -scheme "YourAppScheme" GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS Flavour1=1'

方法二:通过单独的xcode方案

有一个方案,它是每种口味的各自目标。这样它就可以有不同的应用程序名称、版本号、签名者等,如果需要的话,你可以在目标中构建设置的预处理器定义中注入宏。

您所要做的就是在 xcodebuild 命令中传递正确的方案,这就是您排序的

P.S:-

我个人更喜欢方法 2,因为它很容易定制,不用担心 xcode构建命令行参数。