iOS (iPhone, iPad, iPodTouch) просмотр терминала журнала консоли в реальном времени
123
Есть ли способ просмотреть журнал консоли в реальном времени для просмотра NSLog и других сообщений отладки в режиме реального времени, таких как adb logcat?
В Xcode 6.4 я вижу кнопку «Просмотр журналов устройства», но она дает мне журналы сбоев. Я не вижу способа получить журнал консоли.
Крис Принс,
4
Я добавил снимок экрана со значком треугольника вверх.
Marián Černý
1
printзаявления не попадают в лог, только к stdout. NSLogВместо этого используйте . Или можно было бы перенаправить stdoutв файл с добавленным кодом. Сбои регистрируются и доступны с помощью кнопки «Просмотр журналов устройства».
Мариан Черны
3
Эта кнопка была удалена в xCode 9.3. Теперь у него есть кнопка «Console.app», которая имеет больше смысла.
rustyMagnet 09
79
РЕДАКТИРОВАТЬ: используйте решение @cbowns - консоль устройства совместима с iOS9 и намного проще в использовании.
Это программа с открытым исходным кодом, которая отображает системный журнал iDevice в Терминале (аналогично tail -F). Никакого взлома не требуется, вывод полностью доступен для поиска, поэтому вы можете фильтровать его, чтобы увидеть вывод только своей программы. Что особенно хорошо в этом решении, так это то, что вы можете просматривать журнал независимо от того, было ли приложение запущено в режиме отладки из XCode.
Похоже, это не работает с симулятором iOS. Облом. No device found, is it plugged in?
ashes999
Он не может работать на iOS10. «usbmuxd_send: Ошибка -1 при отправке: Сломана труба» Как решить?
Виктор Чой
2
Когда я запускаю idevicesys без sudo, я получаю загадочную ошибку «Не удалось запустить службу com.apple.syslog_relay». Может это зависит от того, как вы его устанавливаете или что-то в этом роде.
Bjorn Roche
Сделайте это, если это не работает для вас ...brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Акшет
77
Два варианта:
libimobiledevice можно установить через homebrew и отлично работает. Его idevicesyslogинструмент работает аналогично deviceconsole(см. Ниже) и поддерживает просмотр системного журнала вашего устройства по беспроводной сети (!)
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выводятся на печать.
Спасибо за этот пост. Это именно то, что я искал. Мне не терпится добавить iOS в свой мобильный инструмент LogCat с графическим интерфейсом пользователя: github.com/yepher/LogCat
Yepher
2
Это круто - на компиляцию и запуск потребовалось 2 минуты. Это должен быть принятый ответ.
Ник Фарина
Это прекрасное решение. И просто хотел добавить, что сборник все еще работает для iOS8 (как и должно!)
Келли
1
@BugaBuga Убедитесь, что вы используете последнюю версию libimobiledevice. (Просмотр журналов по проводной и беспроводной сети работает с моим Mac на 10.11 и моим iPhone на iOS 10.2)
это интересно, но это не позволяет мне выбирать, какое устройство просматривать журнал консоли, если у меня несколько подключенных к Mac.
leolobato
настолько прост и отлично работает на iOS 12, я разочарован тем, что знаю, насколько простым должно быть ведение журнала для разработчика, и в итоге оказался здесь. Спасибо, Питер
FreeAppl3
почему бы и нет Console.app[который изначально поставляется с macOS]?
Да ... но по какой-то причине консоль в Xcode Organizer работает менее в реальном времени, потому что она находится внутри окна графического интерфейса. Я надеялся найти способ вызвать оболочку на устройстве напрямую в tail -f <logfilename>
Арунабх Дас 02
Вы можете установить оболочку на устройство только в том случае, если оно взломано.
progrmr 02
Спасибо, progrmr. Хочу принять ваш ответ как правильный. Не могли бы вы также разместить какие-либо ссылки на HowTo по получению оболочки на взломанном устройстве? Спасибо!!
Арунабх Дас 02
@ArunabhDas Пожалуйста, подумайте об изменении принятого ответа на ответ idevicesyslog от Бена Клейтона. Его решение было именно тем, что я искал для отладки покупок в приложении с помощью приложения iOS с использованием платформы CoronaSDK. Организатор Xcode был медленным и громоздким для просмотра информации журнала.
Энтони Ф
5
устройство> вывод терминала находится в приложении конфигурации iPhone
@ThomasW: К сожалению, конфигуратор Apple, похоже, не имеет возможности просматривать журналы устройства, как это делает / имеет утилита настройки iPhone.
newenglander
1
Оно делает. Просто установите инструменты автоматизации из меню. krypted.com/iphone/…
Sune Kjærgård
2
У вас есть три варианта:
Организатор Xcode
Взломанное устройство с syslogd + openSSH
Используйте dup2 для перенаправления всех STDERR и STDOUT в файл, а затем "tail -f" для этого файла (последний является скорее симулятором, так как вы застряли с той же проблемой отслеживания файла на устройстве).
Итак, чтобы получить второй вариант, вам просто нужно установить syslogd и OpenSSH из Cydia, после чего потребуется перезапуск для запуска syslogd; теперь просто откройте сеанс ssh на вашем устройстве (через терминал или замазку в Windows) и введите "tail -f / var / log / syslog". И вот, системный журнал в реальном времени.
Если вы хотите попробовать 3º, просто найдите "dup2" в Интернете, это системный вызов.
Чтобы просмотреть консоль вашего устройства iOS в Safari на вашем Mac (только для Mac):
На вашем устройстве iOS перейдите в Настройки> Safari> Дополнительно и включите Web Inspector.
На устройстве iOS загрузите веб-страницу в Safari.
Подключите свое устройство напрямую к Mac
На вашем Mac, если у вас еще не активировано меню разработчика Safari, перейдите в «Настройки»> «Дополнительно» и выберите «Показать меню разработки в строке меню».
На вашем Mac выберите «Разработка»> [имя вашего устройства iOS]> [ваша веб-страница].
Появится инспектор Safari с консолью для вашего устройства iOS.
мы можем видеть журнал консоли сафари, а не журнал приложения.
Gamma-Point
Это работает для эмулятора ... Не пробовал с реальным устройством.
sketchthat
0
В качестве альтернативы вы можете использовать экранный инструмент ведения журнала, такой как тикер-журнал, для просмотра журналов без (удобного) доступа к консоли.
Utilities/Console.app
?Ответы:
Решение, описанное Apple в технических вопросах и ответах QA1747 Отладка развернутых приложений iOS для Xcode 6:
источник
print
заявления не попадают в лог, только кstdout
.NSLog
Вместо этого используйте . Или можно было бы перенаправитьstdout
в файл с добавленным кодом. Сбои регистрируются и доступны с помощью кнопки «Просмотр журналов устройства».РЕДАКТИРОВАТЬ: используйте решение @cbowns - консоль устройства совместима с iOS9 и намного проще в использовании.
Это программа с открытым исходным кодом, которая отображает системный журнал iDevice в Терминале (аналогично tail -F). Никакого взлома не требуется, вывод полностью доступен для поиска, поэтому вы можете фильтровать его, чтобы увидеть вывод только своей программы. Что особенно хорошо в этом решении, так это то, что вы можете просматривать журнал независимо от того, было ли приложение запущено в режиме отладки из 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 и введите:
Вверх всплывает отображение системного журнала устройства в реальном времени.
Поскольку это консольное приложение, вы можете фильтровать журнал с помощью команд unix, таких как grep
Например, просмотрите все сообщения журнала из определенного приложения:
Взято из моего блога http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.html
источник
No device found, is it plugged in?
brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Два варианта:
libimobiledevice можно установить через homebrew и отлично работает. Его
idevicesyslog
инструмент работает аналогичноdeviceconsole
(см. Ниже) и поддерживает просмотр системного журнала вашего устройства по беспроводной сети (!)Я уже писал об этом на Tumblr tl; dr:
с устройством, подключенным через USB или доступным в локальной беспроводной сети.
С 2013 года: deviceconsole от rpetrich - гораздо менее сложное решение, чем ideviceconsole выше. Моя его вилка собирается и запускается в Xcode 5 из коробки, а действие Build установит двоичный файл
/usr/local/bin
для простоты использования.В качестве дополнительной полезной информации я использую его в следующем стиле, который упрощает поиск нужного мне устройства в истории моей оболочки и удаляет ненужные
>
строки, которыеdeviceconsole
выводятся на печать.источник
libimobiledevice
. (Просмотр журналов по проводной и беспроводной сети работает с моим Mac на 10.11 и моим iPhone на iOS 10.2)brew install --HEAD libimobiledevice
. Работал у меня.Просто откройте приложение
Console.app
на mac osX.Вы можете найти его в
Applications
>Utilities
>Console
.В левой части приложения перечислены все ваши подключенные устройства.
источник
Попробуйте бесплатную консоль iOS . Просто скачайте, запустите, подключите свое устройство - и вуаля!
источник
Console.app
[который изначально поставляется с macOS]?Это может быть то, что вы ищете: Xcode Organizer
источник
устройство> вывод терминала находится в приложении конфигурации iPhone
здесь: http://support.apple.com/kb/DL1465
источник
У вас есть три варианта:
Итак, чтобы получить второй вариант, вам просто нужно установить syslogd и OpenSSH из Cydia, после чего потребуется перезапуск для запуска syslogd; теперь просто откройте сеанс ssh на вашем устройстве (через терминал или замазку в Windows) и введите "tail -f / var / log / syslog". И вот, системный журнал в реальном времени.
Если вы хотите попробовать 3º, просто найдите "dup2" в Интернете, это системный вызов.
источник
Чтобы просмотреть консоль вашего устройства iOS в Safari на вашем Mac (только для Mac):
Появится инспектор Safari с консолью для вашего устройства iOS.
источник
В качестве альтернативы вы можете использовать экранный инструмент ведения журнала, такой как тикер-журнал, для просмотра журналов без (удобного) доступа к консоли.
источник