白天在 Apple Watch 上记录条目并稍后显示

Log entries on Apple Watch during the day and display later

我目前正在开发一个使用后台任务的 Apple Watch 应用程序。出于某种原因,大约 6 小时后,我在执行这些任务时遇到了问题。

为了对此进行调试,我希望我的 Watch Extension 在白天记录一些语句并稍后从我的 PC 访问某种日志。根据我阅读文档的理解,我只能在连接到调试器时看到 Apple Watch 日志声明,这对我来说是无效的。

任何人都可以指出我在这里可以做什么的方向吗?

我实际上已经在考虑在我的手表应用程序中创建一个表格视图并显示我的自定义日志,但我确信有更简单的方法。

非常感谢任何帮助!

我还不明白你到底想做什么,但无论如何:
我假设您在手表上创建了某种描述异常情况的字符串。

在手表上:
您可以创建此类字符串的数组,并在需要时附加一个新字符串。 然后您可以监视是否可以与 iPhone 通信。 要么在添加新字符串时可能,要么在可能时收到通知。 在这两种情况下,您都可以将整个词典(取决于其大小)作为直接消息或作为文件发送到 iPhone.

在 iPhone:
当带有此词典的直接消息到达时,只需覆盖以前的版本即可。 因此,最近当您的手表靠近 iPhone 时,您将在 iPhone 应用程序上获得完整的日志。 在适当的时候,您可以通过电子邮件将它们发送到您的 Mac.

我不确定这是否适合您。

除了Reinhard推荐的方法外,您还可以通过以下方式收集完整日志:

  1. 当 XCode 为 运行 时将 phone 连接到 Mac 并在 Mac 上打开控制台应用程序 - 您应该在那里查看您的 Apple Watch。不过它不允许您收集历史数据。

  2. 运行 还将收集一些历史数据的 sysdiagnose 配置文件:https://download.developer.apple.com/iOS/watchOS_Logs/sysdiagnose_Logging_Instructions.pdf

根据我的经验得出的一些其他观察结果:

  1. 后台刷新任务通常非常可靠,除非您每小时调用它们超过 4 次。但是,当电池电量低于 10% 时,WatchOS 可能会完全停止 运行 您的后台任务,并且似乎在 10% 到 20% 的电量之间存在一些限制。

  2. WatchOS 5.0.1 在处理后台 URL 会话时似乎有些不稳定。有时它只是停止下载数据而不会产生任何错误,即使超过了资源超时也是如此。然后它又开始工作了。有时在下一次后台刷新时终止 "stuck" 下载任务有助于再次 运行 正常获取它,但并非总是如此。同样,此行为从 5.0.1(或可能是 5.0)开始。

  3. 通过控制台记录可能不会为您提供所有日志语句。它现在工作得更可靠了,我不知道升级到 Mojave 是否有帮助,或者这是一个巧合,但它过去常常删除一些本应存在的日志语句。