如何从 iPad/iPhone 检索使用 os_log 记录的消息?

How can I retrieve messages logged with os_log from iPad/iPhone?

我在 Swift 中使用新的统一日志记录 API。

所以我创建了一个记录器并按如下方式使用它:

let testLogger = OSLog(subsystem: "my.subsystem", category: "test")
os_log("just a test: %@", log: testLogger, type: .error, "error")

如果 iOS 设备与 Mac 断开连接,我如何检索记录的消息?

我知道新的控制台应用程序会显示设备连接到 Mac 时记录的消息。但是,我想检索设备与计算机断开连接时记录的消息。我怎样才能做到这一点?

谢谢。

我发现的唯一方法是在 iOS 设备上触发系统诊断,然后将其连接到计算机并让它与 iTunes 同步,然后从文件系统收集日志。

要在 iOS 设备上触发系统诊断,您需要同时按下提高音量、降低音量和电源按钮。然后等待它完成。 Apple 说“10 分钟”。然后连接到电脑并与 iTunes 同步。

macOS 上的日志在这里:

~/Library/Logs/CrashReporter/MobileDevice/[Your_Device_Name]/DiagnosticLogs/sysdiagnose

关于Windows,我不确定。

Apple sysdiagnose intructions

中有更多详细信息

在 iOS 11 上,您现在可以捕获 sysdiagnose 并访问 sysdiagnose 以通过电子邮件发送(不要通过电子邮件发送,它很大),或导出到 dropbox/airdrop 到您的 Mac。 Instructions.

它的要点是:

  • 按住音量增大和音量减小以及电源按钮 1.5 秒,直到屏幕振动。
  • 然后最多等待 10 分钟,然后在您的 iOS 11 设备上转到:

Settings > Privacy > Analytics > Analytics Data > sysdiagnose_[xxx] > tap share icon in the nav bar。对我来说,不到一分钟。

在日志中搜索 sysdiagnose。它将类似于 sysdiagnose_2018.12.13_14-16-19-0500_iPhone_OS_iPhone_15G77

然后通过 AirDrop 分享。您不再需要数据线和 iTunes。

来自here

的原始答案

iOS14目前的步骤是这样的:

General > Accessibility > Touch >> Assistive Touch >> Single Tap >> Analytics

最后,触摸按钮。 Sysdiagnose 将启动。

完成后。禁用它,因为您不想不断触发该系统诊断...