iOS (iPhone, iPad, iPodTouch) переглядає термінал журналу консолі реального часу


123

Чи існує спосіб перегляду журналу консолі реального часу для перегляду NSLog та інших повідомлень налагодження в режимі реального часу, наприклад, adb logcat?


1
Ви хочете сказати, що хочете отримати еквівалент IOS Utilities/Console.app?
BryanH

Відповіді:


155

Рішення, задокументоване Apple в технічних питаннях QA1747 Налагодження розгорнутої програми iOS для Xcode 6:

  1. У меню Xcode виберіть Window -> Devices.
  2. Виберіть пристрій у лівій колонці.
  3. Клацніть на трикутник вгору ліворуч у правій панелі, щоб відобразити консоль пристрою.

Знімок екрана з трикутником вгору


4
На мою думку, це найпростіше рішення.
Барт ван Куїк

У Xcode 6.4 я бачу кнопку "Переглянути журнали пристроїв", але вона дає мені журнали аварій. Я не бачу способу отримати журнал консолі.
Кріс-принц

4
Я додав скріншот із піктограмою верхнього трикутника.
Marián Černý

1
printзаяви не йдуть до журналу, а лише до stdout. Використовуйте NSLogзамість цього. Або можливо перенаправити stdoutна файл з деяким доданим кодом. Збої реєструються та доступ до них можна отримати за допомогою кнопки "Переглянути журнали пристроїв".
Marián Černý

3
Цю кнопку було вимкнено у xCode 9.3. Тепер у нього є кнопка "Console.app", яка має сенс більше.
rustyMagnet

79

РЕДАКТУВАТИ: Будь ласка, використовуйте рішення @cbowns - пристрій пристрою сумісний з iOS9 та набагато простіший у використанні.

Це програма з відкритим кодом, яка відображає системний журнал iDevice в терміналі (подібним до хвоста -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 і введіть:

idevicesyslog

Вгору з'являється відображення в режимі реального часу системного журналу пристрою.

Оскільки це консольний додаток, ви можете фільтрувати журнал за допомогою команд unix, наприклад grep

Наприклад, перегляньте всі повідомлення журналу певного додатка:

idevicesyslog | grep myappname

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


4
Схоже, це не працює з тренажером iOS. Бампер. No device found, is it plugged in?
ashes999

Він не може працювати на iOS10. "usbmuxd_send: Помилка -1 при відправці: Несправна труба" Як це вирішити?
Віктор Чой

2
Коли я запускаю idevicesys без судо, я отримую явну помилку щодо "Не вдалося запустити службу com.apple.syslog_relay". Можливо, це залежить від того, як ви це встановите чи щось.
Бйорн Рош

Зробіть це, якщо це не працює для вас ...brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Акшет

77

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

libimobiledevice можна встановити через домашню мову та чудово працює. Його idevicesyslogінструмент працює аналогічно deviceconsole(нижче), і він підтримує бездротовий перегляд системного журналу вашого пристрою (!)

Я написав більше про це на Tumblr tl; dr:

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

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

З 2013 року: консоль пристрою від rpetrich - це набагато менш розбуджене рішення, ніж ідевіконсоль вище Мій роздріб складається з цього коду і працює в Xcode 5, і дія Build дозволить встановити двійковий код /usr/local/binдля зручності використання.

Як додатковий корисний біт інформації, я використовую її в наступному стилі, що полегшує пошук потрібного пристрою в моїй історії оболонок і видаляє непотрібні >рядки, які deviceconsoleвиводяться на друк.

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

Дякую за цю публікацію Це саме те, що я шукав. Я не можу зачекати, щоб додати iOS до свого мобільного інструменту LogCat GUI: github.com/yepher/LogCat
Yepher

2
Це приголомшливо - на збирання та запуск пішло 2 хвилини. Це має бути прийнятою відповіддю.
Нік Фаріна

Це прекрасне рішення. І просто хотілося додати, що колекція все ще працює для iOS8 (як і слід!)
Келлі,

1
@BugaBuga Переконайтеся, що ви використовуєте останні libimobiledevice. (Провідний та бездротовий перегляд журналів працюють з моїм Mac 10.11 і моїм iPhone на iOS 10.2)
cbowns

1
github.com/libimobiledevice/libimobiledevice/isissue/356 . Використання: brew install --HEAD libimobiledevice. Працювали для мене.
rustyMagnet

21

Просто відкрийте програму Console.appна mac osX.

Ви можете знайти його в Applications> Utilities> Console.

У лівій частині програми перелічені всі підключені пристрої.


2
Це чудове рішення. Я можу використовувати функцію "Пошук", щоб в основному "змащувати" журнали "Live" / "Зараз" для свого пристрою.
Роб

14

Спробуйте безкоштовну консоль iOS . Просто завантажте, запустіть, підключіть свій пристрій - et voila!


1
це цікаво, але він не дозволить мені вибрати, на якому пристрої переглядати журнал консолі, якщо я декілька підключений до Mac.
leolobato

настільки простий і чудово працює на iOS 12, я засмучуюся тим, що простий журнал повинен бути для розробника і закінчуватися тут. Дякую, Петро
FreeAppl3

чому б не Console.app[які постачаються на macOS]?
rustyMagnet

6

Це може бути те, що ви шукаєте: Xcode Organizer


Так ... але чомусь консоль в Xcode Organizer є менш реальною, оскільки вона знаходиться всередині вікна графічного інтерфейсу. Я сподівався на спосіб викликати оболонку пристрою безпосередньо на хвіст -f <logfilename>
Arunabh Das

Ви можете отримати оболонку на пристрої лише у тому випадку, якщо вона встроена у в'язницю.
progrmr

Спасибі progrmr. Я хотів би прийняти вашу відповідь як правильну відповідь. Чи можете ви також опублікувати будь-які посилання для HowTo про отримання оболонки на встроенному пристрої? Дякую!!
Арунаб Дас

@ArunabhDas Будь ласка, подумайте про зміну прийнятої відповіді на відповідь idevicesyslog від Бена Клейтона. Його рішення було саме тим, що я шукав, щоб налагодити придбання через додаток для iOS за допомогою платформи CoronaSDK. Організатор Xcode був повільним і громіздким для перегляду інформації журналу.
Ентоні Ф

5

пристрій> термінальний вихід знаходиться в додатку для конфігурації iPhone

тут: http://support.apple.com/kb/DL1465


1
Це посилання більше не дійсне. Я вважаю, що оновлена ​​назва програми - Apple Configurator, і вона доступна тут: itunes.apple.com/us/app/apple-configurator/id434433123?mt=12 Однак це ОС X 10.10+.
ThomasW

1
@ThomasW: На жаль, конфігуратор Apple, схоже, не має можливості переглядати журнали пристроїв, як робить / робила утиліта налаштування iPhone.
newenglander

1
Це робить. Просто встановіть у меню інструменти автоматизації. krypted.com/iphone/…
Sune Kjærgård

2

У вас є три варіанти:

  • Організатор Xcode
  • Пристрій з джейлбрейком із системою syslogd + openSSH
  • Використовуйте dup2, щоб перенаправити всі STDERR та STDOUT до файлу, а потім "хвостик -f" цей файл (цей останній є більш симулятором, оскільки у вас застрягла та сама проблема з підключенням файлу на пристрої).

Отже, щоб отримати 2º один, вам просто потрібно встановити syslogd та OpenSSH від Cydia, після перезапуску syslogd потрібно перезапустити; тепер просто відкрийте сеанс ssh на своєму пристрої (через термінал або шпаклівку на windows) та введіть "tail -f / var / log / syslog". І ось там, бездротовий системний журнал реального часу.

Якщо ви хочете спробувати 3º просто шукати “dup2” в Інтернеті, це системний дзвінок.


0

Щоб переглянути консоль пристрою iOS в Safari на вашому Mac (лише для Mac):

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

З'явиться інспектор Safari, який показує консоль для вашого пристрою iOS.


3
ми можемо бачити журнал консолі сафарі, а не журнал програми.
Гамма-Пойнт

Це спрацьовує для емулятора ... Не пробував цього з фактичним пристроєм.
замальовуйте

0

Як альтернатива, ви можете використовувати екранний інструмент реєстрації даних, наприклад тикер-журнал, для перегляду журналів, не маючи (зручного) доступу до консолі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.