6

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

4

3 回答 3

9

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

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

Beta.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BETA=1

分发.xcconfig。

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BETA=0

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

创建一个 xcconfig 文件

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

映射 xcconfigs 以构建样式

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

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

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

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

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

于 2012-11-24T12:40:57.627 回答
3

方案仅执行构建配置

只能为构建配置设置宏

进行新的构建配置和使用它的新方案

有点不方便:/

于 2012-11-24T11:46:43.820 回答
0

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

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

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

于 2014-01-15T13:41:36.940 回答