2

私はプロジェクトに取り組み始めました。このプロジェクトは、過去数年間に何人かによって開発されたもので、CocoaLumberjack の設定方法は次のとおりです。

次の 2 つのファイルがあります。

LogLevelInfo.h

static const int ddLogLevel = DDLogLevelInfo;
#define VAR_LOG_VERBOSE __unused

LogLevelVerbose.h

static const int ddLogLevel = DDLogLevelVerbose;
#define VAR_LOG_VERBOSE

これら 2 つのファイルは、使用するログ レベルに応じて、別のクラスによってインポートされます。

実行する必要があるため、ソースコードの一部をフレームワークに抽出し始めました。これが私がトラブルを起こし始めたところです。一部のソース コードでは既にログに CocoaLumberjack を使用しているため、LogLevelInfo.h と LogLevelVerbose.h もフレームワークに配置する必要がありました。ここまでは順調ですね。フレームワーク プロジェクトはコンパイル可能で、エラーをスローしません。

親プロジェクトから LogLevelVerbose.h と LogLevelInfo.h を削除し、Cocoapods を使用してフレームワークを統合しました。ddLogLevelXcode は再定義されたことを教えてくれますRedefinition of ddLogLevel(Pods サブディレクトリの LogLevelVerbose.h にエラーが表示されます。正直に言うと、開発 Pods サブディレクトリ)。

Xcode プロジェクト内で ddLogLevel を再定義しても問題がなかった理由と、別のプロジェクトのフレームワーク内で使用するときに問題になる理由を誰かが説明できますか? 残念ながら、フレームワークと親プロジェクトに CocoaLumberjack が必要です :-(.

次に、CocoaLumberjack.h でこれを見つけました。

 * Step 1:
 * Import the header in your implementation or prefix file:
 *
 * #import <CocoaLumberjack/CocoaLumberjack.h>
 *
 * Step 2:
 * Define your logging level in your implementation file:
 *
 * // Log levels: off, error, warn, info, verbose
 * static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
 *
 * Step 2 [3rd party frameworks]:
 *
 * Define your LOG_LEVEL_DEF to a different variable/function than ddLogLevel:
 *
 * // #undef LOG_LEVEL_DEF // Undefine first only if needed
 * #define LOG_LEVEL_DEF myLibLogLevel
 *
 * Define your logging level in your implementation file:
 *
 * // Log levels: off, error, warn, info, verbose
 * static const DDLogLevel myLibLogLevel = DDLogLevelVerbose;

しかし、名前を myLibLogLevel に変更した後は、すべてがほぼ同じままでした。Xcodeは私に言い続けましたRedefinition of myLibLogLevel

4

0 に答える 0