实时读取Apple Watch syslog(NSLog())

问题描述 投票:0回答:2

我正在寻找一种实时读取手表系统日志的方法,类似于Device Consolethis为iPhone做的方式。

如果在我阅读时手机将USB插入计算机,这是可以的。

在这一点上,我甚至会找到一个解决方案,以某种方式从Xcode调试控制台实时读取文本,真的(虽然我更喜欢以标准方式挂钩到手表的系统日志:)

谢谢!

ios iphone watchkit apple-watch syslog
2个回答
1
投票

虽然我找不到任何官方方式从设备获取日志,但我确实设法编写了一个实时执行此操作的黑客。

它使用python GUI自动化库从Xcode控制台窗口中提取文本。

请注意这个解决方案确实有它的局限性,因为它:

  • 要求手机通过电缆连接到计算机
  • 只包含您自己的应用程序中的日志,因此它没有前面提到的工具。

但是,它确实解决了我的问题,我发布了短的python代码,希望它能帮助其他开发人员。

import atomac

def get_console():
    xcode = atomac.getAppRefByBundleId('com.apple.dt.Xcode')
    return xcode.windows()[0].groups()[0].textAreasR()[1]

def run():
    console = get_console()
    while True:
        clog = console.AXValue[-1000:]
        last_read = clog.split("\n")[-2]
        print last_read

if __name__ == "__main__":
    run()

请注意,您可能必须使用get_console()中的一些索引来获取Xcode设置中的控制台窗口。

(如果你有兴趣,这个黑客代码是为一个黑客马拉松项目编写的,作为一种从手表获取快速数据的方法,因为它无法在WatchOS2 Beta 4上发送任何UDP数据包以及从手表发送数据的官方方式[例如sendMessageData:replyHandler:errorHandler:]对于我们需要的东西来说太慢了。


1
投票

我知道这是一个老线程,但对于任何登陆此搜索的人来说,有办法做到这一点:https://forums.developer.apple.com/thread/94693

总而言之,将诊断配置文件加载到手表上(在论坛帖子中链接),然后您可以使用MacOS系统控制台查看监视消息。现在我有一个奇怪的问题,其中一些消息我NSLog()出现而其他消息没有,但你可以实时看到观看消息。

© www.soinside.com 2019 - 2024. All rights reserved.