1. ホーム
  2. ios

[解決済み] アプリケーションをリリースする前にNSLogを無効化する必要がありますか?

2022-08-26 17:20:11

質問

iPhone用アプリをリリースする際に NSLog(); を無効にすると、パフォーマンスが向上するのでしょうか?

どのように解決するのですか?

一つの方法は、ビルドの設定に入り、デバッグの設定で "Preprocessor Macros" の値に次のような値を追加することです。

DEBUG_MODE=1

この作業はDebug版のみで、Beta版やRelease版では行わないようにしてください。そして、共通のヘッダーファイルで、次のようなことを行うことができます。

#ifdef DEBUG_MODE
#define DLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DLog( s, ... ) 
#endif

では、代わりに NSLog を使います。 DLog をあらゆる場所で使用することができます。テストやデバッグをするときには、デバッグメッセージが表示されます。ベータ版や最終版をリリースする準備ができたら、これらすべての DLog の行は自動的に空になり、何も表示されなくなります。この方法では、手動で変数を設定したり、コメントとして NSLogs のコメントも必要ありません。ビルドターゲットを選択することで対処します。