我目前正在开发一个使用后台任务的Apple Watch应用。由于某些原因,大约6个小时后,我在执行这些任务时遇到了问题。
为了进行调试,我希望Watch Extension在白天记录一些语句,稍后再从PC中访问某种日志。根据我对文档的了解,我只能看到Apple Watch Log语句附在调试器上,对我而言无效。
任何人都可以指出我在这里可以做什么的方向吗?
我实际上已经在考虑在手表应用中创建表格视图并显示自定义日志,但是我敢肯定有一种更简单的方法。
非常感谢您的帮助!
答案 0 :(得分:0)
我不确定您到底想做什么,但是无论如何:
我假设您在手表上创建了一些描述异常情况的字符串。
在手表上:
您可以创建此类字符串的数组,并在需要时附加新的字符串。
然后,您可以监视是否可以与iPhone通信。
在添加新字符串时可能会出现这种情况,或者在可能时会收到通知。
在这两种情况下,您都可以将整个字典(取决于字典的大小)作为直接消息或文件发送给iPhone。
在iPhone上:
当带有该词典的直接消息到达时,只需覆盖以前的版本。
因此,最晚在手表靠近iPhone时,您将在iPhone应用程序上拥有完整的日志。
您可以在适当的时候通过电子邮件将其发送到Mac。
我不确定这对您是否可行。
答案 1 :(得分:0)
除了Reinhard建议的方法外,您还可以通过以下任一方式收集完整日志:
在运行XCode并在Mac上打开控制台应用程序时将手机连接到Mac-您应该在那里看到Apple Watch。但是,它不允许您收集历史数据。
正在运行的sysdiagnose配置文件也将收集一些历史数据:https://download.developer.apple.com/iOS/watchOS_Logs/sysdiagnose_Logging_Instructions.pdf
基于我的经验的其他一些观察结果:
背景刷新任务通常非常可靠,除非您每小时调用它们超过4次。但是,当电池电量下降到10%以下时,WatchOS可能会完全停止运行您的后台任务,并且在10%至20%的电量之间似乎有些节流。
WatchOS 5.0.1在处理后台URL会话时似乎有些不稳定。有时,即使超过资源超时,它也会停止下载数据而不会产生任何错误。然后,它再次开始工作。有时,在下一次后台刷新时终止“卡住”的下载任务有助于使它再次正常运行,但并非总是如此。同样,此行为始于5.0.1(或5.0)。
通过控制台登录可能无法提供所有日志语句。现在它可以更可靠地工作,我不知道升级到Mojave是否有帮助,或者这是一个巧合,但是它曾经删除了一些本应存在的日志语句。