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

时间:2012-11-24 10:43:37

标签: ios xcode macros c-preprocessor beta-testing

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

3 个答案:

答案 0 :(得分:9)

最好的方法是使用Xcode configuration files

添加一些名为Beta.xcconfigDistribution.xccconfig的文件(或类似名称),并为每种构建添加宏。

Beta.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BETA=1

Distribution.xcconfig。

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BETA=0

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

Create a xcconfig file

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

Map xcconfigs to build styles

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

#if BETA
// do something only in beta
#endif

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

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

build logs with macros highlighted

答案 1 :(得分:3)

方案仅执行构建配置

只能为构建配置设置宏

制作新的构建配置和使用它的新方案

这有点不方便:/

答案 2 :(得分:0)

替代方案(我使用过)将位于项目或目标的构建设置中。

1)转到项目 - >目标 - >构建设置
2)搜索“预处理器宏”

现在,您应该能够看到为该项目定义的所有方案,并添加您喜欢的任何预处理器宏。只记得留下$(继承)。此外,您可能希望保留所有其他已定义的宏,因为在我的情况下,我有COCOAPODS = 1定义。