如何在 xcode 构建命令中传递预处理器宏名称?
How do I pass preprocessor macro name in xcode build command?
我正在 CI 构建 azure devops。我想知道如何传递预处理器宏值,以便我可以制作不同风格的构建。
AFAIK 如果我们可以在 xcode build 中设置预处理器宏,那么我们也可以在 azure devops 上进行设置。
欢迎任何有帮助的指点
您可以创建一个 ruby 脚本来设置项目。 Xcodeproj 是修改 Xcode 项目的强大工具。
方法一:通过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构建命令行参数。
我正在 CI 构建 azure devops。我想知道如何传递预处理器宏值,以便我可以制作不同风格的构建。
AFAIK 如果我们可以在 xcode build 中设置预处理器宏,那么我们也可以在 azure devops 上进行设置。
欢迎任何有帮助的指点
您可以创建一个 ruby 脚本来设置项目。 Xcodeproj 是修改 Xcode 项目的强大工具。
方法一:通过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构建命令行参数。