CocoaLumberjack 1.9.x 遗留宏已启用 + DDLogWarn 宏已重新定义

CocoaLumberjack 1.9.x legacy macros enabled + DDLogWarn macros redefined

我有一个项目使用 Cocoalumberjack 2.x 作为 Cocoapod。该项目主要使用Obj-C,但也有一些Swift 类.

我总是收到这些警告:

Disable legacy macros by importing CocoaLumberjack.h or DDLogMacros.h instead of DDLog.h or add `#define DD_LEGACY_MACROS 0` before importing DDLog.h.

在主项目中我没有导入的文件DDLog.h。 Pods 中只有 CocoaLumberjack 导入 DDLog.h.

我还收到 DDLogError macro redefinedDDLogInfo macro redefined 等警告。 是什么问题导致的?

我认为问题源于 DDLegacyMacros.h 缺失:

#if DD_LEGACY_MACROS

第 21 行和:

#endif

第 75 行。然后在 DDLog.h 中,替换:

#if DD_LEGACY_MACROS
    #import "DDLegacyMacros.h"
#endif

与:

#import "DDLegacyMacros.h"

https://github.com/CocoaLumberjack/CocoaLumberjack/commit/9b31277c90d7c3968038af09a7bddd003aa28da9

在 Cocoapods 中应用新的 use_frameworks! 选项时,桥接头 是自动生成的。此桥接头必须导入 DDLegacyMacros.h 直接地。 这会导致 CocoaLumberjack 1.9.x legacy macros enabled.macro redefined 警告。

因此仅仅检查 DDLog.h 中的标志是不够的。