Objective-C/iOS プログラムのデバッグに Xcode8 のベータ版を使用すると、NSLog でログを出力できず、以下の内容が表示されます: subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
subsystem: com.apple.FrontBoard, category: Common, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
同じ Objective-C/iOS のコードは Xcode7 では正常に出力されます。
Apple の公式フォーラムでも Xcode8 beta のバグが報告されています https://forums.developer.apple.com/thread/49136
公式の説明では、最新の Xcode のバグだと言われており、Xcode8 beta 2 では解決されたようです。
Xcode 8 beta 2 で解決済み – IDE
デバッグ
シミュレータ上でアプリをデバッグすると、ログが表示されます。 (26457535)
しかし、Xcode8 beta 4 では再び問題が発生しています。本当に困ります。
Xcode 8 beta 4 の既知の問題 – IDE
デバッグ
シミュレータでアプリをデバッグすると、Xcode のデバッグコンソールにシステムフレームワークからの余分なログが表示されます。 (27331147, 26652255)
StackOverflow では、ログを出力する際に先頭に特殊文字(例:'^')を追加することで問題が解決するという提案があります。Xcode8 で確認済みです。
出力形式
// Xcode8 beta で動作
NSLog (@"^ テストログ")
一度解決すればよいので、NSLog を DLog と ALog に定義しましょう。
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"^ %s line %d " fmt), \_\_PRETTY\_FUNCTION\_\_, \_\_LINE\_\_, ##\_\_VA\_ARGS\_\_);
#else
# define DLog(...)
#endif
#define ALog(fmt, ...) NSLog((@"^ %s line %d " fmt), \_\_PRETTY\_FUNCTION\_\_, \_\_LINE\_\_, ##\_\_VA\_ARGS\_\_);
参考 http://stackoverflow.com/questions/37800790/hide-xcode-8-logs