iOS (iPhone, iPad, iPodTouch) просматривает консольный журнал в режиме реального времени
Есть ли способ просмотреть журнал консоли в реальном времени для просмотра NSLog и других сообщений отладки в режиме реального времени, например, adb logcat?
10 ответов
Решение, задокументированное Apple в Технических вопросах и ответах QA1747 Отладка Развернутых iOS-приложений для Xcode 6:
- Выберите Window -> Devices из меню Xcode.
- Выберите устройство в левом столбце.
- Нажмите на треугольник вверху слева внизу на правой панели, чтобы отобразить консоль устройства.
Два варианта:
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. Просто скачайте, запустите, подключите свое устройство - и вуаля!
Устройство > вывод терминала находится в приложении конфигурации iPhone
У вас есть три варианта:
- 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):
- На устройстве iOS перейдите в "Настройки"> "Safari"> "Дополнительно" и включите веб-инспектор
- На вашем устройстве iOS загрузите веб-страницу в Safari.
- Подключите ваше устройство напрямую к вашему Mac
- На вашем Mac, если вы еще не активировали меню разработчика Safari, перейдите в "Настройки"> "Дополнительно" и выберите "Показать меню" Разработка "в строке меню".
- На вашем Mac перейдите в Develop > [имя вашего устройства iOS] > [ваша веб-страница]
Инспектор Safari отобразит консоль для вашего устройства iOS.
В качестве альтернативы вы можете использовать экранное средство ведения журнала, такое как ticker-log, для просмотра журналов без (удобного) доступа к консоли.