【问题标题】:Log entries on Apple Watch during the day and display later白天在 Apple Watch 上记录条目并稍后显示
【发布时间】:2019-03-28 01:50:10
【问题描述】:

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

为了对此进行调试,我希望我的 Watch Extension 能够在白天记录一些语句并稍后从我的 PC 访问某种类型的日志。根据我阅读文档的理解,我只能在附加到调试器时看到 Apple Watch Log 语句,这在我的情况下无效。

谁能指出我可以在这里做什么?

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

非常感谢任何帮助!

【问题讨论】:

  • 手表未连接 iPhone 时是否也要记录日志?
  • 这将是非常可取的,但现在不是必须的

标签: swift watchkit apple-watch watch


【解决方案1】:

除了 Reinhard 建议的方法之外,您还可以通过以下任一方式收集完整日志:

  1. 在 XCode 运行时将手机连接到 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 会话方面似乎有些不稳定。有时它只是停止下载数据而不会产生任何错误,即使超过了资源超时。然后它又开始工作了。有时在下一次后台刷新时杀死“卡住”的下载任务有助于让它再次正常运行,但并非总是如此。同样,此行为始于 5.0.1(或者可能是 5.0)。

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

【讨论】:

    【解决方案2】:

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

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

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

    我不确定这对你来说是否可行。

    【讨论】:

    • 嗨 Reinhard,非常感谢您的意见。我假设 iOS 具有某种适用于应用程序的默认日志文件功能,我可以在 Apple Watch 上使用它来简化事情。既然我知道还没有可用的东西,我将自己实现一个系统。顺便说一句,我检查了你的个人资料,哇,真是巧合,我也来自海德堡,也为了好玩而开发 iOS :) 再次感谢!
    • 其实不知道有没有更简单的方案。但我的方法可以让您在手表连接到 iPhone 时“实时”获取日志。
    • 是的,我只是希望有一个文件来转储我的字符串,但我只会使用一个数组,我将作为消息发送
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多