在Xcode8.0测试版(8S128d)上,NSLog
不打印任何内容。printf
保持不变
下面是我的代码:
NSLog(@"hello from NSLog");
printf("hello from printf");
以下是iOS 9模拟器的输出:
2016-06-17 09:49:10.887 calmapp-dev[28517:567025] hello from NSLog
hello from printf
以下是iOS 10模拟器的输出:
hello from printf
发布于 2017-04-20 10:39:41
此外,确保控制台在Xcode中确实可见(即,确保右侧图标以蓝色突出显示,如下图所示)。在我升级Xcode之后,它隐藏了控制台,只显示了Variables视图。这让它看起来像是NSLog()
没有正常工作,而实际上它工作正常,我只是看不到输出。
发布于 2016-06-23 09:17:51
在真实的iOS 10设备中,我也看不到NSLog输出。如果你使用的是真实的设备,你可以从Xcode (Shift + Command + 2)打开设备窗口,查看那里的设备日志,但很难查看你的应用程序的日志,因为控制台显示系统和所有应用程序的日志。
(我使用的是Xcode7,所以可能不是Xcode7的问题,而是iOS 10的问题)
发布于 2018-03-03 14:47:05
对于将来遇到这个问题的任何人。在iOS 10和iOS 11中,NSLog没有打印到系统日志的原因是由于苹果更改为统一日志记录。
你可以在这里看到WWDC关于它的讨论:https://developer.apple.com/videos/play/wwdc2016/721/
这里的文档:https://developer.apple.com/documentation/os/logging
从10开始,你应该使用os_log而不是NSLog。
如何在磁盘上查找日志:https://www.blackbagtech.com/blog/2017/09/22/accessing-unified-logs-image/
总而言之,日志位于可在/Users/USERNAME/Library/Developer/CoreSimulator/Devices/SIMULATOR-GUID/data/var/db/
上找到的虚拟机的/var/db/diagnostics
中
将diagnostics
和uuidtext
中的所有项目复制到一个文件夹中(不包括文件夹diagnostics或uuidtext中的内容)。
将该文件夹重命名为foldername.xarchive
。
在Console.app中打开它或使用OSX工具log
:log show <path to archive> --info --predicate <options>
https://stackoverflow.com/questions/37886600
复制相似问题