2

我有一个有两个目标的应用程序,我想为不同的目标定义一个具有不同值的宏。我该怎么做?两者都是发布版本

4

2 回答 2

5

每个目标在 Xcode 中都有自己的“构建设置”,您可以在其中设置“预处理”类别(查找定义 'DEBUG=1' 的位置),您可以在其中设置目标唯一的自定义宏。

于 2012-12-05T07:44:45.457 回答
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,所以使用不同的目标进行如下操作

#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 在各自的目标中定义。

于 2012-12-05T07:46:38.907 回答