我想在我的应用中添加一个新的#define
宏,但仅适用于某些方案,例如测试方案。做这个的最好方式是什么?我知道当你在测试中运行应用程序时(例如在模拟器中),它会添加一个DEBUG = 1宏,但我无法弄清楚如何添加更多的宏。
答案 0 :(得分:9)
最好的方法是使用Xcode configuration files。
添加一些名为Beta.xcconfig
和Distribution.xccconfig
的文件(或类似名称),并为每种构建添加宏。
Beta.xcconfig:
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BETA=1
Distribution.xcconfig。
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BETA=0
您可以使用新文件对话框轻松添加文件:
然后,您需要将每个文件映射到构建样式。进入顶级项目,项目设置(正上方目标),然后单击“信息”部分:
在您的代码中,您可以像往常一样使用宏:
#if BETA
// do something only in beta
#endif
如果不是分配值而是定义宏,则应使用#ifdef
。
如果您使用多个宏,则可能需要在构建日志中检查所有内容是否按预期工作:
答案 1 :(得分:3)
方案仅执行构建配置
只能为构建配置设置宏
制作新的构建配置和使用它的新方案
这有点不方便:/
答案 2 :(得分:0)
替代方案(我使用过)将位于项目或目标的构建设置中。
1)转到项目 - >目标 - >构建设置
2)搜索“预处理器宏”
现在,您应该能够看到为该项目定义的所有方案,并添加您喜欢的任何预处理器宏。只记得留下$(继承)。此外,您可能希望保留所有其他已定义的宏,因为在我的情况下,我有COCOAPODS = 1定义。