Xcode8 真机测试log打印不出现的解决办法

之前一直用的是Xcode7,今日更新Xcode8后,模拟器打印log都好着,等到真机测试时就不会出现打印数据,很烦人,想看自己打印的数据看不到;首先,当我们升级Xcode8后运行项目,会打印一些之前没遇到过的垃圾信息,解决的办法就是添加OS_ACTIVITY_MODE = disable,具体的方法请看我的另一篇文章,地址: http://www.jianshu.com/p/d89793821ac1。这只是解决了那些烦人的信息,想要真正做到能在真机上打印log我们需要自定义log,主要原因是在iOS 10真机测试所有的Log日志全部被屏蔽了!这个问题应该是iOS 10开始为了在真机上提高性能,所以把Log日志给屏蔽了。
这样的话就需要我们自定义log在打印log

对于我们做开发的来说,打印log是必须的,最初我自定义的log日志是:

 #ifdef DEBUG
 #define GZString [NSString stringWithFormat:@"%s",           __FILE__].lastPathComponent
   #define GZLog(...) NSLog(@"%@ 第%d行 \n %@\n\n",GZString,__LINE__,     [NSString stringWithFormat:__VA_ARGS__])

 #else
 #define LRLog(...)
 #endif

系统的NSlog()已经只能在ios9 之前用了,如果要在ios10系统的手机打印日志,我们需要用到printf(),下面是具体的发不发发:

 #ifdef DEBUG
 #define GZString [NSString stringWithFormat:@"%s", __FILE__].lastPathComponent
 #define GZLog(...) printf("%s: %s 第%d行: %s\n\n",[[NSString gz_stringDate] UTF8String], [GZString UTF8String] ,__LINE__, [[NSString    stringWithFormat:__VA_ARGS__] UTF8String]);

 #else
 #define LRLog(...)
 #endif

使用UTF8String的原因就是printf是C语言的,所以需要通过这个方法转换一下才能打印
这样,就可以在iOS10 手机上打印日志了,打印具体的数据

你可能感兴趣的:(Xcode8 真机测试log打印不出现的解决办法)