4
5

More than 5 years have passed since last update.

【Objective-C】デバッグログを開発環境だけで表示する

Last updated at Posted at 2016-10-09

はじめに

NSLogを使用し出力させたログを開発環境でのみ出力させる方法を備忘録として書き記します。

手順1

まずは、適当なSampleプロジェクトを作成し、「Supporting Files」の中にprefix.pchを作成します。(どこでもよいですがXcode6以前は「Supporting Files」にプロジェクト作成時からあったようなのでこの中に)

PCH File作成.png

名前はプロジェクト名Prefix.pchにします。
ここではSamplePrefix.pch

PrefixFile.png

手順2

Build Settingsから
Apple LLVM 7.1 - Language(本環境は7.1)の
Prefix Headerにパスを追加します。
手順1と同じ場所に追加したならパスは
「プロジェクト名/ファイル名.pch」となります。

path.png

手順3

手順1で作成した「SamplePrefix.pch」に下記のコードを追加

#ifdef DEBUG
#   define NSLog(...) NSLog(__VA_ARGS__)
#else
#   define NSLog(...)
#endif

Macro.png

※prefix.pchに書いた内容はimportしなくてもすべてのファイルに適用されます

試してみる

下記のようにViewController.m内のviewDidLoad内でNSLogを使用してみます。
通常当たり前ですが下記のようにログが出力されます。

NSLog.png

Schemeの設定を下記の手順で変更

・Sample(プロジェクト名)を押下

Scheme位置.png

・Edit Schemeを押下
スクリーンショット 2016-10-09 18.55.52.png

・Build ConfigurationをDebugからReleaseに変更
スクリーンショット 2016-10-09 18.56.12.png

再度Buildすると、下記のようにNSLogをコメントアウトしていないのに、ログが出力されない
スクリーンショット 2016-10-09 18.58.38.png

さいごに

プロジェクト作成時に今回の手順をふめば、Release時うっかりNSLogを消し忘れていたということにも対応できると思いました。
また、本番環境と開発環境でAPIKeyやURLなどが違う場合も今回のmacroを使うことで使い分けることができます。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5