我有一个有两个目标的应用程序,我想为不同的目标定义一个具有不同值的宏。我可以这样做吗?两者都是发布版本
答案 0 :(得分:4)
每个目标在Xcode中都有自己的“构建设置”,你有“预处理” - 类别(查找定义了'DEBUG = 1'的位置),你可以在其中设置对目标唯一的自定义宏。
答案 1 :(得分:0)
这样做
#define CONSOLE_DEBUG 1 // Comment this line to undefine
#ifdef CONSOLE_DEBUG
#define SMLog(format, ...) NSLog((@"%s (%d) " format), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
#define SMLog(format, ...)
#endif
当您定义CONSOLE_DEBUG时,SMLOG将使用Pretty功能打印日志。否则如果你在上面评论那么它就会打印一个简单的NSLOG。
您可以简单地检查目标宏而不是CONSOLE_DEBUG。
修改强>
在我的一个应用程序中,我需要提供不同的URL,因此请使用不同的目标进行IDid,如下所示
#ifdef APP_LIVE
#define strDefaultURL <Some URL String>
#define strIndexPlistURL <Some URL String>
#elif APP_DEV
#define strDefaultURL <Some URL String>
#define strIndexPlistURL <Some URL String>
#else
#define strDefaultURL <Some URL String>
#define strIndexPlistURL <Some URL String>
#endif
在各个目标中定义了APP_LIVE和APP_DEV。