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

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

如果手机在阅读的时候被usb插到电脑上,那也没关系。

在这一点上,我甚至会解决一个解决scheme,以某种方式从Xcodedebugging控制台实时读取文本,真的(尽pipe我会更喜欢以标准方式挂钩到手表的系统日志:)。

谢谢!

虽然我找不到任何从设备上获取日志的官方方式,但是我确实设法实时写入黑客。

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

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

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

然而,它确实解决了我的问题,我发布了短的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: ]对我们所需要的来说太慢了)。