Хотя я не мог найти какой-либо официальный способ получить журналы с устройства, мне удалось написать хак, который делает это в режиме реального времени.
Он использует библиотеку автоматизации GUI python, чтобы вытащить текст из окна консоли 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.
(Если вам интересно, этот код взлома был написан для проекта hackathon, чтобы получить быстрые данные с часов, так как он не мог отправлять UDP-пакеты на WatchOS2 Beta 4 и официальные способы отправки данные из часов [например, sendMessageData:replyHandler:errorHandler:
] были слишком медленными для того, что нам было нужно).