Xcode8 beta版无法输出NSLog问题
使用Xcode8的Beta版本进行Objective-C/iOS程序调试时,使用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版本输出正常,没有出现。
苹果的官方论坛也有人提了Xcode8 beta的Bug
https://forums.developer.apple.com/thread/49136
官方的解释是最新的Xcode的BUG,
然后,在Xcode8 beta 2中貌似解决了。
Resolved in Xcode 8 beta 2 – IDE Debugging When debugging an app on the Simulator, logs are visible. (26457535)
然后,在Xcode8 beta 4中又要解决了一遍。伤不起啊。
Known Issues in Xcode 8 beta 4 – IDE Debugging Xcode Debug Console shows extra logging from system frameworks when debugging applications in the Simulator. (27331147, 26652255)
StackOverflow上有人建议在输出日志的时候在日志最前方增一个特殊字符比如 ‘^’ 可以解决问题。Xcode8下实测有效
输出格式
// worked in Xcode8 beta NSLog(@"^ Test Log")
为了一劳永逸,俺们还是定义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
Recent Comments