NSLog或os_log:如何记录多个iOS版本?
有一天,我们的质量检查人员通知我,在iOS 10设备上进行测试时,他没有看到我们的日志消息。
“早上好,Siri亲爱的,”我单击了屏幕右上角的圆形图标。 “我没有看到我的NSLog消息,请告知…”
她傲慢地回答:“您应该切换到os_log API”。 “而且请不要再问我紫色36倍是多少,哪只熊是最好的,或者查克·诺里斯(Chuck Norris)可以通过打架击败雷神”。
谢谢Siri,我拭目以待。
基本上,快速浏览一下我们的代码发现,我们的NSLog调用不再显示在控制台应用程序中。 现在,我们将代码编写为库。 这意味着我们在应用程序中的日志消息,即我们的质量检查人员在测试时寻找的消息,是发行版中编译的dylib的一部分。 在这种情况下,NSLog从iOS 10.0开始不起作用。 有什么用? 好吧,根据Siri所说,应该有一个新的API,即os_log API。
您问什么是os_log API? 好吧,它正式被称为“统一日志系统”。其功能被描述为“集中日志数据在内存中和磁盘上数据存储的集中化”。
因此,我们面临着相当大的难题。 Siri自己说,新的os_log API是可行的方法,但仅从iOS 10.0开始可用。 我们别无选择-我们必须在可用时使用新的API,但对于旧版本仍要使用NSLog。
我们该怎么做?
要阅读整个故事,请单击此处。
- 在iOS WKWebView中设置“禁用Web安全性”和“允许从文件访问文件”
- MPMediaItem和iTunes匹配
- Android – Facebook分析应用程序安装事件没有触发
- 如何在共享数据库上执行更改时从CKDatabaseNotification获取CKRecord信息?
- CBPeripheral存储的UUID有多长时间可用于重新连接?
- 离线iOS Web应用程序:加载我的清单,但不能脱机工作
- iOS – pushViewController vs presentModalViewController的区别
- 无法使用滑动侧菜单UITabBarController
- 背景设备音乐得到停止,因为应用程序启动ios