Вопрос по console, ios, ios-simulator – Как я могу получить журналы консоли с симулятора iOS?

206

Я хочу посмотреть, что произойдет в iOS Simulator, если я не тестирую приложение в Xcode.

Например, если я открою ссылку в симуляторе Safari, посмотрим, что происходит в консоли, или если я установлю веб-приложение, просмотрите ссылки, которые я нажимаю в консоли.

Как я могу это сделать?

Я хочу видеть это в Xcode или Terminal, но это не проблема, если мне нужно использовать другой бит программного обеспечения.

Смотрите также:stackoverflow.com/a/29310542/59087 Dave Jarvis

Ваш Ответ

10   ответов
248

Панель меню & gt; Отладка & gt; Открытый системный журнал

Старые пути:

iOS Simulator распечатывает свои журналы прямо на стандартный вывод, поэтому вы можете увидеть, что журналы перепутаны с системными журналами.

Откройте Терминал и введите:tail -f /var/log/system.log

Затем запустите симулятор.

РЕДАКТИРОВАТЬ:

Это перестало работать на Mavericks / Xcode 5. Теперь вы можете получить доступ к журналам симулятора в его собственной папке:~/Library/Logs/iOS Simulator/<sim-version>/system.log

Вы можете использовать Console.app, чтобы увидеть это, или просто сделать хвост (iOS 7.0.3, 64 бита, например):

tail -f ~/Library/Logs/iOS\ Simulator/7.0.3-64/system.log

РЕДАКТИРОВАТЬ 2:

Сейчас они находятся в~/Library/Logs/CoreSimulator/<simulator-hash>/system.log

tail -f ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log

Ответ от BYossarian - «правильный» один. & quot; Разработайте меню в настольном сафари, которое позволяет увидеть консоль симулятора iOS: Develop - & gt; Симулятор iPhone - & gt; название сайта & quot;
Симулятор iOS & gt; Панель меню & gt; Отладка & gt; Открытый системный журнал
Это все еще точно? Я ничего не вижу отconsole.log в этом журнале с помощьюtail или жеConsole.app
Я не получаю никаких результатов на OSX 10.10. эти журналы есть, но мой симулятор версии 8.1 и все журналы версии 7.1 *
Спасибо! В наши дни это ~ / Library / Logs / CoreSimulator / & lt; simulator-hash & gt; /system.log.
7

XCode > 6.0 AND iOS > 8.0 8,0

Я использую приведенный ниже небольшой скрипт для привязки журналов симулятора к системной консоли.

#!/bin/sh
sim_dir=`xcrun instruments -s | grep "iPhone 6 (8.2 Simulator)" | awk {'print $NF'} | tr -d '[]'`
tail -f ~/Library/Logs/CoreSimulator/$sim_dir/system.log

Вы можете передать в качестве аргумента тип симулятора, используемый в Grep. Как упомянуто в вышеупомянутых сообщениях, есть команда simctl и instruments, чтобы просмотреть тип симуляторов, доступных для использования в зависимости от версии XCode. Посмотреть список доступных устройств / симуляторов.

xcrun instruments -s

ИЛИ ЖЕ

xcrun simctl list

Теперь вы можете передать код устройства ИЛИ тип симулятора в качестве аргумента скрипту и заменить «iPhone 6 (8.2 симулятор)». внутри grep будет $ 1

201

ri. Это похоже на то, как вы используете настольный Safari для просмотра консоли для физических устройств iOS.

Всякий раз, когда симулятор работает и веб-страница открыта, в меню Safari на рабочем столе будет опция, позволяющая увидеть консоль симулятора iOS:

Разработать - & gt; Симулятор iPhone - & gt;site name

Кто-нибудь знает, как заставить его автоматически проверять, когда я открываю симулятор?
Кажется, Safari обнаруживает, что simultor открыт, но в нем говорится «Нет проверяемых приложений».
Это лучший ответ, так же как и «реальный» консоль браузера, и вы можете выполнять команды JavaScript на лету. Спасибо.
Веб-инспектор (при доступе таким образом) для меня совершенно пуст (Mavericks Macbook Pro - все обновления установлены - Safari 7.0.5)
Почему я не видел это нигде? Brilliant.
11

/var/log/system.log не работал для меня. Я нашел свои журналы с помощьюConsole.app, Они были в

~/Library/Logs/iOS Simulator/{version}/system.log

Это отличный способ оглянуться назад на логи, например, дней назад.
102

В симуляторе есть возможность открытьconsole

Debug > Open System Log

или используйте

keyboard shortcut: ⌘/

Simulator menu screenshot

15

Swiftпомни чтоprintln будет печатать только в журнал отладки (который появляется в области отладки xCode). Если вы хотите распечатать в system.log, вы должны использоватьNSLog как в старые времена.

Затем вы можете просмотреть журнал симулятора через его меню Debug & gt; Открыть системный журнал ... (cmd + /)

0

Console приложение на вашем Mac. Просто выберите интересное устройство в Устройствах.

enter image description here

0

Debug -> Open System Log... Не уверен, когда это было введено, поэтому он может быть недоступен для более ранних версий.

89
iOS 8 and iOS 9

~/Library/Logs/CoreSimulator/<DEVICE_CODE>

Итак, будет работать следующее:

tail -f ~/Library/Logs/CoreSimulator/<DEVICE_CODE>/system.log

DEVICE_CODE значение можно найти с помощью следующей команды консоли:

instruments -s devices
s / консоль / окно терминала /
Вы можете напечататьinstruments -s devices в консоли
А что тогда код устройства? У меня их 12 ...
Чтобы найти идентификатор устройства: в Xcode нажмите Windows & gt; Устройства. Устройство и идентификатор будут отображены в правой панели.
16

instruments -s, Официально поддерживаемый инструмент для работы с симуляторами из командной строкиxcrun simctl.

Каталог журналов для устройства можно найти с помощьюxcrun simctl getenv booted SIMULATOR_LOG_ROOT, Это всегда будет правильно, даже если местоположение меняется.

Теперь, когда вещи движутся кos_log проще открыть Console.app на хосте Mac. Загруженные симуляторы должны отображаться слева как источник журналов, как и физические устройства. Вы также можете запустить команды журнала в загруженном симуляторе:

# os_log equivalent of tail -f
xcrun simctl spawn booted log stream --level=debug

# filter log output
xcrun simctl spawn booted log stream --predicate 'processImagePath endswith "myapp"'
xcrun simctl spawn booted log stream --predicate 'eventMessage contains "error" and messageType == info'

# a log dump that Console.app can open
xcrun simctl spawn booted log collect

# open location where log collect will write the dump
cd `xcrun simctl getenv booted SIMULATOR_SHARED_RESOURCES_DIRECTORY`

If you want to use Safari Developer tools (including the JS console) with a webpage in the SimulatorЗапустите один из симуляторов, откройте Safari, затем перейдите в Safari на вашем Mac, и вы должны увидеть Симулятор в меню.

Вы можете открыть URL в симуляторе, перетащив его из адресной строки Safari и опустив в окне симулятора. Вы также можете использоватьxcrun simctl openurl booted <url>.

Теперь это правильный ответ для Xcode 9.3, iOS 11. Места, упомянутые в других ответах, больше не являются правильными.

Похожие вопросы