为某些方案添加宏BETA = 1到Xcode?

Jas*_*son 6 macros xcode beta-testing ios c-preprocessor

我想在#define我的应用程序中添加一个新的宏,但仅适用于某些方案,例如测试方案.做这个的最好方式是什么?我知道当你在测试中运行应用程序时(例如在模拟器中)它会添加一个DEBUG = 1宏,但我无法弄清楚如何添加更多的宏.

djr*_*ero 9

最好的方法是使用Xcode配置文件.

添加几个名为Beta.xcconfigDistribution.xccconfig(或类似的)文件,并为每种构建添加宏.

Beta.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BETA=1
Run Code Online (Sandbox Code Playgroud)

Distribution.xcconfig.

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BETA=0
Run Code Online (Sandbox Code Playgroud)

您可以使用新文件对话框轻松添加文件:

创建一个xcconfig文件

然后,您需要将每个文件映射到构建样式.进入顶级项目,项目设置(正上方目标),然后单击"信息"部分:

映射xcconfigs以构建样式

在您的代码中,您可以像往常一样使用宏:

#if BETA
// do something only in beta
#endif
Run Code Online (Sandbox Code Playgroud)

如果不是分配值,而是定义应该使用的宏#ifdef.

如果您使用多个宏,则可能需要在构建日志中检查所有内容是否按预期工作:

使用突出显示的宏构建日志