我正在寻找一种实时读取手表系统日志的方法,类似于Device Console或this为iPhone做的方式。
如果在我阅读时手机将USB插入计算机,这是可以的。
在这一点上,我甚至会找到一个解决方案,以某种方式从Xcode调试控制台实时读取文本,真的(虽然我更喜欢以标准方式挂钩到手表的系统日志:)
谢谢!
虽然我找不到任何官方方式从设备获取日志,但我确实设法编写了一个实时执行此操作的黑客。
它使用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:
]对于我们需要的东西来说太慢了。
我知道这是一个老线程,但对于任何登陆此搜索的人来说,有办法做到这一点:https://forums.developer.apple.com/thread/94693。
总而言之,将诊断配置文件加载到手表上(在论坛帖子中链接),然后您可以使用MacOS系统控制台查看监视消息。现在我有一个奇怪的问题,其中一些消息我NSLog()
出现而其他消息没有,但你可以实时看到观看消息。