ios - 实时读取 Apple Watch 系统日志 (NSLog())

标签 ios iphone watchkit apple-watch syslog

我正在寻找一种实时读取 watch 系统日志的方法,类似于 Device Console 的方式或 this为 iPhone 做这件事。

如果我看书的时候手机能通过usb插到电脑上就可以了。

在这一点上,我什至会选择一种解决方案,它以某种方式从 Xcode 调试控制台实时读取文本,真的(尽管我更喜欢一种以标准方式连接到 watch 系统日志的方法:)。 .

谢谢!

最佳答案

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

它使用 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 设置中获取控制台窗口。

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

关于ios - 实时读取 Apple Watch 系统日志 (NSLog()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31826382/

相关文章:

ios - WCSession:是否可以取消排队的消息?

javascript - 如何使使用 fullpage.js 的网站在 Safari for iOS 上全屏显示

ios - 添加 .xib , .h & 。 m 到现有的 Storyboard。

iphone - iPhone和iPad中的同步和异步是什么?

ios - 查找 WatchKit App Store 图标时出现问题

swift - 等待 openParentApplication 回调完成

ios - 核心数据迁移崩溃

ios - 如何根据标签行设置 ios 约束

iphone - "Send call"从 iPad 到 iPhone

iphone - 检查 C 枚举是否存在