iOS (iPhone, iPad, iPodTouch) просматривает консольный журнал в режиме реального времени

Есть ли способ просмотреть журнал консоли в реальном времени для просмотра NSLog и других сообщений отладки в режиме реального времени, например, adb logcat?

10 ответов

Решение

Решение, задокументированное Apple в Технических вопросах и ответах QA1747 Отладка Развернутых iOS-приложений для Xcode 6:

  1. Выберите Window -> Devices из меню Xcode.
  2. Выберите устройство в левом столбце.
  3. Нажмите на треугольник вверху слева внизу на правой панели, чтобы отобразить консоль устройства.

Скриншот с восходящим треугольником

Два варианта:

http://www.libimobiledevice.org/ устанавливается с помощью homebrew и прекрасно работает. это idevicesyslog инструмент работает аналогично deviceconsole (ниже), и он поддерживает беспроводной просмотр системного журнала вашего устройства (!)

Я написал больше об этом на Tumblr tl; dr:

brew install libimobiledevice
idevice_id --list // list available device UDIDs
idevicesyslog -u <device udid>

с устройством, подключенным через USB или доступным в локальной беспроводной сети.

С 2013 года: deviceconsole от rpetrich является гораздо менее изношенным решением, чем описанная выше ideviceconsole. Мой форк этого строит и работает в Xcode 5 из коробки, и действие Build установит двоичный файл в /usr/local/bin для простоты использования.

В качестве дополнительной полезной информации я использую ее в следующем стиле, который облегчает поиск нужного устройства в истории оболочки и удаляет ненужные > линии, которые deviceconsole распечатывает.

deviceconsole -d -u <device UDID> | uniq -u && echo "<device name>"

РЕДАКТИРОВАТЬ: Пожалуйста, используйте решение @cbowns - deviceconsole совместима с iOS9 и гораздо проще в использовании.

Это программа с открытым исходным кодом, которая отображает системный журнал iDevice в терминале (аналогично tail -F). Не требуется джейлбрейк, и вывод полностью grep'able, так что вы можете фильтровать, чтобы увидеть вывод только из вашей программы. Что особенно хорошо в этом решении, так это то, что вы можете просмотреть журнал, независимо от того, было ли приложение запущено в режиме отладки из XCode.

Вот как:

Загрузите двоичный файл libimobiledevice для Mac OS X с моей учетной записи github по адресу https://github.com/benvium/libimobiledevice-macosx/zipball/master

Следуйте инструкциям по установке здесь: https://github.com/benvium/libimobiledevice-macosx/blob/master/README.md

Подключите ваше устройство, откройте Terminal.app и введите:

idevicesyslog

Up отображает в реальном времени системный журнал устройства.

Поскольку это консольное приложение, вы можете фильтровать журнал с помощью команд Unix, таких как grep

Например, просмотрите все сообщения журнала из определенного приложения:

idevicesyslog | grep myappname

Взято из моего блога на http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html

Просто откройте приложение Console.app на Mac OSX.

Вы можете найти его под Applications > Utilities > Console,

В левой части приложения перечислены все ваши подключенные устройства.

Попробуйте бесплатную консоль iOS. Просто скачайте, запустите, подключите свое устройство - и вуаля!

Это может быть то, что вы ищете: Xcode Organizer

Устройство > вывод терминала находится в приложении конфигурации iPhone

здесь: http://support.apple.com/kb/DL1465

У вас есть три варианта:

  • Xcode Organizer
  • Взломанное устройство с syslogd + openSSH
  • Используйте dup2, чтобы перенаправить все STDERR и STDOUT в файл, а затем "tail -f" этот файл (последний - скорее симулятор, так как вы столкнулись с той же проблемой, что и хвост файла на устройстве).

Итак, чтобы получить 2º, вам просто нужно установить syslogd и OpenSSH из Cydia, перезагрузите компьютер после запуска syslogd; Теперь просто откройте сессию ssh на вашем устройстве (через терминал или замазку на Windows) и введите "tail -f /var/log/syslog". И все, беспроводная система регистрации в реальном времени.

Если вы хотите попробовать 3º просто найти "dup2" онлайн, это системный вызов.

Чтобы просмотреть консоль iOS-устройства в Safari на Mac (только для Mac):

  1. На устройстве iOS перейдите в "Настройки"> "Safari"> "Дополнительно" и включите веб-инспектор
  2. На вашем устройстве iOS загрузите веб-страницу в Safari.
  3. Подключите ваше устройство напрямую к вашему Mac
  4. На вашем Mac, если вы еще не активировали меню разработчика Safari, перейдите в "Настройки"> "Дополнительно" и выберите "Показать меню" Разработка "в строке меню".
  5. На вашем Mac перейдите в Develop > [имя вашего устройства iOS] > [ваша веб-страница]

Инспектор Safari отобразит консоль для вашего устройства iOS.

В качестве альтернативы вы можете использовать экранное средство ведения журнала, такое как ticker-log, для просмотра журналов без (удобного) доступа к консоли.

Другие вопросы по тегам