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

时间:2015-08-05 07:45:28

标签: ios iphone watchkit apple-watch syslog

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

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

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

谢谢!

2 个答案:

答案 0 :(得分: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 :(得分:0)

我知道这是一个旧线程,但是对于任何进行此搜索的人,都可以这样做:https://forums.developer.apple.com/thread/94693

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