Как снять логи с ios
Перейти к содержимому

Как снять логи с ios

  • автор:

Access the Device Logs

Getting access to the device logs often yields additional information when attempting to isolate an issue with an ANE. We may sometimes ask for you to provide these logs in order for us to debug an issue or isolate a problem.

Android

On Android it is relatively simple to get the device logs. The debugger command line utility ( adb / adb.exe ) can be used to output the logs along with installing your application and is packaged as part of AIR at AIRSDK/lib/android/bin . If you have installed the Android SDK you can also use the version from there.

Note: It is important you have set your device into debug mode.

macOS (OSX)

To access the logs:

  • open a Terminal
  • run adb logcat

You can get more relevant information by using grep to filter the logs. For example, we often use the following:

Windows

To access the logs:

  • open a Command Prompt window
  • run AIRSDK\lib\android\bin\adb.exe logcat

On iOS, there are 2 types of logs, “Device Logs” and the “Console”. The device logs are crash reports and generally aren’t very useful to us unless we can resymbolcate your application. However the console is quite helpful and contains debugging information output from the ANE’s.

macOS (OSX)

iOS has changed its logging method in iOS 10 so there are 2 ways to retrieve the logs depending on the version of iOS you have on your device.

iOS < 10

To get access to the console:

  • Open Xcode
  • Navigate to Window / Devices
    • click on your device in the left panel
    • ignore the “Device Logs” button (this is the crash reports mentioned)
    • click the small triangle in the bottom left of the right panel to expand the ‘console log’
    • copy and paste this log when an issue occurs
    iOS 10 +

    To access the console open the Console application and select the device in the left hand panel.

    You can use the filter to search the logs for any relevant information.

    libimobiledevice

    Using these tools you can do a range of iOS device related tasks, such as installing an application and accessing the device logs.

    Firstly install the tools using homebrew:

    Then in a terminal type:

    Windows

    It is possible to get the logs on a Windows machine. There are several methods that we have found to be reliable, using iTunes and the other using a program called iTools.

    If you know of a better way please let us know and we will add it to this answer.

    iOSLogInfo Tool

    Using this tool from Blackberry appears to be the best option for Windows developers.

    Requires the iOSLogInfo tool and iTunes installed.

    • Download and save the iOSLoginfo zip download by clicking here.
    • Extract the zip file contents.
    • Ensure iTunes for Windows is installed.
    • Connect your iOS device to a PC.
    • From a command prompt navigate to the location you extracted the above contents and run one of the following to start a live log collection session:

    OR to write the contents to a log file run:

    iTools

    It is possible to get the device logs on a Windows machine using a program called iTools. You will need to get a copy of this program, be aware that there are spyware versions of this program so don’t just download any version of it.

    We have had users have success with the version from this Chinese website (an english version is available): http://pro.itools.cn/.

    We in no way endorse or accept any responsibility for using this program, use at your own risk.

    iTunes

    The crash logs are transferred to iTunes everytime you sync your device. These aren’t as helpful as the device logs but can yield information about an issue in some circumstances. To start plugin your device, launch iTunes and start the synchronisation process.

    The logs are copied to your file system which you can locate using the following:

    • Open Explorer
    • Enter %appdata%
    • Navigate to : Roaming\Apple computer\Logs\CrashReporter\Mobile Device\DEVICENAME

    You should see a list of log files starting with the name of the application, locate your application name and open the log

    libimobiledevice

    These tools should work on Windows as well however we haven’t tested this option:

    Disclaimer

    Any links to third-party software available on this website are provided “as is” without warranty of any kind, either expressed or implied and such software is to be used at your own risk.

    Логи iOS | iOS Logs

    6. После открытия домашней страницы тестового приложения или веб-сайта нажмите «Возобновить».

    7. Пересмотрите ошибку, о которой вы сообщаете
    8. Нажмите Пауза, затем нажмите Сохранить

    9. Сохраните файл в расширении .txt

    10. Загрузить его в свой отчет об ошибке

    Альтернативный способ получения журнала устройства iOS с Windows

    Вы можете использовать приложение под названием 3utools. Это быстрый и простой способ получить журналы устройства на вашем устройстве iOS с помощью Windows.

    Как установить 3utools и записывать логи с его помощью:

    Как снимать логи с устройств на Android и iOS: разбираемся с инструментами

    Краткая инструкция по чтению и разбору логов мобильных устройств на Android и iOS, а также необходимые инструменты для Windows и MacOS.

    Статья подготовлена red_mad_robot и «Альфа-Банком» на основе доклада Senior QA red_mad_robot Ольги Никитиной «Инструменты для снятия логов с Android / iOS устройств. Чтение и разбор» на митапе «QАчественное общение» при поддержке red_mad_robot.

    Уровни логирования и что они означают

    Для начала разберёмся с логами. Это текстовые файлы, в которых записываются все действия пользователя. Например, какие кнопки он нажимает в приложении и как на это оно реагирует в ответ.

    Записи в логах формируются в хронологическом порядке. Самая свежая — внизу.

    Есть два вида логов:

    Crash logs — файл, в котором хранятся записи только об ошибках экстренного завершения программы — по-простому, когда приложение крашнулось.

    Logs — простые логи, или журнал событий. Это файл, в котором хранятся системные записи и ответы устройства на действие пользователя.

    Логи на мобильных устройствах бывают нескольких уровней:

    Они представлены по уровню важности — от самого высокого к самому низкому, — и каждый следующий уровень включает в себя предыдущий. Например, VERBOSE содержит в себе логи всех остальных.

    Примечание: уровни более применимы к логам на Android, потому что именно там такое разделение встречается чаще.

    Рассмотрим подробнее каждый уровень.

    Error (ERROR)

    На этом уровне информируются ошибки работы системы.

    Записи этого уровня требуют быстрого вмешательства разработчика — на такие ошибки нужно реагировать максимально быстро.

    Как пример, такая запись в логе:

    “ SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length ”

    Это ошибка, в которой говорится, что строковый элемент span не может быть пустым.

    “ [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008] ] ”

    Эта системная ошибка сообщает, что происходит утечка памяти при взаимодействии с каким-то элементом или приложением.

    Warning (WARN)

    На этом уровне отображаются записи, сообщающие о каком-то неожиданном поведении, требующем внимания, или о ситуации, которая незнакома системе.

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

    “ [OMX.hisi.video.decoder.avc] setting nBufferCountActual to 16 failed: -2147483648 “

    Мы пытаемся декодировать запись в какой-то формат, но его нет. Ошибка сообщает о неуспешной попытке настройки видеоплеера в нужном формате.

    “ BroadcastQueue: Permission Denial: broadcasting Intent ”

    Эта системная ошибка говорит о сбое в работе одного из виджетов на устройстве.

    Info (INFO)

    На этот уровень приходят записи информационного характера, например о работе системы.

    Допустим, такое сообщение об уровне заряда батареи на устройстве:

    “ APwBatteryMonitor: screen off start battery: 100 ”

    А это сообщение говорит о том, что экран устройства был выключен:

    Ещё в логи этого уровня входят запросы от клиента на сервер: хедеры, тело запросов, которые отправляет клиент, и ответы сервера.

    “ okhttp.OkHttpClient: <— 200 https://domainname/api/v1/smth/deals (1691ms)

    okhttp.OkHttpClient: server: nginx/1.15.9

    okhttp.OkHttpClient: date: Thu, 23 Sep 2021 19:41:17 GMT

    okhttp.OkHttpClient: content-type: application/json

    okhttp.OkHttpClient: vary: Accept-Encoding

    okhttp.OkHttpClient: strict-transport-security: max-age=15724800; includeSubDomains

    okhttp.OkHttpClient: <— END HTTP ”

    Такие записи могут помочь вам в понимании какого-то бага или в разборе задачи при условии, что вы не можете перехватить трафик или не знаете, какие запросы отправляются на бэкенд.

    Debug (DEBUG)

    Это уровень сообщений, в которых передаётся информация о процессах отладки или шагах работы крупных процессов.

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

    Сначала мы видим запись о самом факте нажатия на кнопку, далее оно расшифровывается подробнее:

    Ещё пример: если ваше приложение использует сокет-сессию, то на уровне DEBUG мы можем увидеть, когда сессия начинается и заканчивается:

    “ b$b: WebSocket connected ”

    Verbose (VERBOSE)

    Сообщения такого уровня уточняют или раскрывают действия.

    Например, у нас есть служба управления окнами на экране приложения. И на уровне Verbose мы можем увидеть подробности её работы.

    WindowManager: Removing Window

    На этом уровне мы можем посмотреть системные подробности наших действий. Например, при включении геолокации в записи отобразится текущая геолокация.

    GnssLocationProvider: reportLocation Location [. ]

    А меняя звук на устройстве, мы увидим, как растёт или падает значение:

    AudioManager: getStreamVolume streamType: 3 volume: 10

    Каждое нажатие, то есть изменение звука, будет отражаться новым сообщением.

    Verbose — уровень самого низкого приоритета. Выбирая такой уровень отображения логов, мы будем видеть записи и со всех предыдущих уровней.

    Примечание: разработчики приложения самостоятельно покрывают действия логами, определяют уровни, а также какие сообщения какому из них соответствуют.

    Инструменты для снятия логов: Android

    Расскажем о трёх способах.

    ПервыйLogcat в составе Android Studio, самый известный и широко используемый.

    Для снятия логов нам необходимо перевести устройство в режим разработчика/отладки. Для этого нужно:

    найти в настройках номер нашего билда или ОС (в зависимости от устройства),

    около десяти раз нажать на эту информацию,

    при появлении сообщения о том, не хотим ли мы перевести устройство в режим разработчика, нажать «Ок».

    Примечание: алгоритм может отличаться в зависимости от производителя устройства, потому что у многих из них свои надстройки на ОС Android.

    Дальше подключаем устройство по USB к ПК и устанавливаем Android Studio.
    Следующие шаги на скрине:

    Выбираем вкладку Logcat (переходим к сообщениям в реальном времени).

    В окошке выбираем телефон, с которого снимаем логи.

    На этой вкладке выбираем логи определённого приложения. Если нужно снять вообще все логи со всех приложений и системы, эту вкладку стоит не трогать. Рядом с ней можно выбрать уровень логирования (вкладка Verbose на скрине).

    В поле поиска, где мы можем фильтровать выдачу, разрешено писать что угодно — от названия пакета до частей вроде fatal.

    На скрине видно логи с подключенного устройства.

    Второй способвыгрузка логов с самого устройства. Кроме режима разработчика нам нужно подключить устройство к ПК через USB и установить ADB — Android Debug Bridge.

    Открываем терминал и пишем две команды.

    Первая — adb devices — показывает подключённые устройства, которые видит ADB. В терминале выглядит так:

    Название устройства — 7BKDU18504001505

    Название устройства — 7BKDU18504001505

    Вводим вторую команду — adb -s название устройства logcat, — которая запускает утилиту Logcat для конкретного устройства. В терминале в реальном времени будут поступать логи.

    Как их читать?

    В первом столбце — дата и время поступления записи.

    Во втором — обозначения уровней логирования. Например, D — это Debug.

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

    Третий инструментSDK Platform Tools. Процесс его установки практически аналогичен предыдущим двум:

    переводим телефон в режим разработчика,

    подключаем к ПК по USB,

    скачиваем на ПК папку SDK PT (под свою ОС),

    открываем папку SDK PT в терминале.

    Теперь пишем команду ./adb logcat –v threadtime > ./android-debug.log.

    В терминале это выглядит так:

    Прерываем выполнение команды (например, на Mac это Control+C). Лог добавляется в папку.

    В первом столбце — дата и время, во втором — уровни логов, в третьем — указание на то, от какой части системы поступают данные, лог и его расшифровка/подробности

    В первом столбце — дата и время, во втором — уровни логов, в третьем — указание на то, от какой части системы поступают данные, лог и его расшифровка/подробности

    Очень похоже на предыдущий терминал, но файл обновляется, пока в терминале действует команда.

    Инструменты снятия логов: iOS

    В первую очередь нас интересует xCode — интегрированная среда разработки (IDE), в которую встроен нужный нам инструмент Simulator.

    Как использовать инструмент:

    В системной строке нажимаем xCode → Open Developer Tools → Simulator.

    В самом симуляторе выбираем Debug → Open System Log.

    Мы будем видеть логи в реальном времени:

    Подобное оформление логов мы уже где-то видели, но построение информации в выдаче немного отличается. Есть дата и время (1) и данные (2) о том, с какого устройства снята информация: имя компьютера, элемент системы, с которого пришло сообщение, и его расшифровка.

    Но первый способ работает только с симуляторами. Если необходимо снимать логи с реального устройства, в этом может помочь раздел Devices and Simulators.

    Записи можно отфильтровать по конкретному процессу (вашему приложению):

    Подключаем устройство к ПК по USB.

    Открываем xCode → Windows → Devices and Simulators.

    Дальше нажимаем у устройства Open Console и видим панель с названием устройства, информацией о модели и ОС:

    1 — все приложения, которые установлены на устройстве, 2 — версия устройства, 3 — пакет приложения устройства

    1 — все приложения, которые установлены на устройстве, 2 — версия устройства, 3 — пакет приложения устройства

    Логи поступают в реальном времени, но их удобно отслеживать:

    У нас есть три столбца:

    «Время» — время поступления сообщения.

    «Процесс» — с какой части системы/приложения пришло сообщение.

    «Сообщение» — описание события, сервисная информация.

    В инструменте есть поиск для фильтрации выдачи. Ещё есть полезная кнопка «Приостановить» — она останавливает поток логов.

    А вот утилита iMazing поможет снимать iOS-логи для тех, у кого установлен Windows. Приложение платное, но часть функциональности доступна бесплатно. Например, за снятие логов устройства платить не нужно.

    В меню выбираем «Показать консоль устройства». В открывшемся окне приходят записи логов в реальном времени со всего устройства.

    1 — дата и время получения сообщения; 2 — имя телефона, информация, с какой части устройства пришло сообщение, и описание; 3 — поисковая строка для фильтрации выдачи

    1 — дата и время получения сообщения; 2 — имя телефона, информация, с какой части устройства пришло сообщение, и описание; 3 — поисковая строка для фильтрации выдачи

    Ещё одно важное достоинство iMazing — возможность сохранять логи (разумеется, по кнопке «Сохранить»).

    Статья подготовлена red_mad_robot и «Альфа-Банком» на основе доклада Senior QA red_mad_robot Ольги Никитиной «Инструменты для снятия логов с Android / iOS устройств. Чтение и разбор» на митапе «QАчественное общение» при поддержке red_mad_robot.

    Как снять логи для iOS и Android приложений

    Оксана Куценко

    Мобильное приложение или приложение — это программное обеспечение, предназначенное для работы на смартфонах, планшетах и других мобильных устройствах.

    Загружаются из магазина приложений (Google Play или App Store) на мобильном устройстве.

    Виды мобильных приложений:

    • Нативные
    • Веб-приложения
    • Гибридные

    Распространенные причины возникновения багов в мобильных приложениях:

    • Проблемы при установке/удалении мобильных приложений
    • Проблемы с поддержкой различных версий ОС и устройств
    • Проблемы с соблюдением принципов безопасности
    • Проблемы с большим потреблением ресурсов девайса
    • Проблемы со скоростью запуска и работы приложения
    • Проблемы локализации
    • Проблемы при вращении экрана
    • Проблемы с непонятными пользователям сообщениями об ошибке
    • Проблемы при подключении к интернету
    • Проблемы, связанные с условиями работы офлайн
    • Проблемы, связанные с низким уровнем заряда батареи
    • Проблемы после перезагрузки телефона
    • Проблемы после входящих звонков и SMS

    Важную роль при диагностировании ошибок в мобильных приложениях играют логи.

    Логи и их виды

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

    Логи предназначены для того, чтобы более подробно воспроизвести ошибку, разобраться, в чем именно состоит проблема, и легче найти пути ее решения.

    Виды логов

    Логи мобильных приложений делятся на два основных вида: консольные (обычные) логи и креш-логи.

    Консольные логи — это лог-файлы, являющиеся журналом событий и содержащие все записи о системных событиях, ответы устройства на действия пользователя, которые обновляются в режиме реального времени.

    Креш-логи — это лог-файлы, которые создаются после экстренного завершения работы программы (креша). Файлы креш-логов имеют расширение .crash или .ips. Креш-логи содержат информацию с момента запуска программы и до экстренного завершения программы.

    Как снять логи мобильных приложений

    Существуют разные варианты снятия логов для мобильных приложений в зависимости от операционной системы телефона (Android, iOS).

    Как снять логи с iOS

    Одним из самых распространенных способов для получения логов для приложений iOS является получение с помощью XCode.

    XCode — это среда разработки программного обеспечения для платформ macOS и iOS.

    Для снятия логов через XCode необходимо:

    • Установить XCode
    • Подключите устройство к Mac
    • Запустить XCode
    • Открыть вкладку «Window» — «Devices and Simulators»
    • Нажать кнопку «View Device Logs»
    • Найти нужный лог-файл и скопировать его в текстовый файл

    Также получить логи можно с помощью iMazing (доступно как для Windows, так и для MacOS).

    Как снять логи с Андроид

    Для того, чтобы снять с Android логи приложения, понадобится Android Studio.

    Android Studio — интегрированная среда разработки (IDE) для платформы Android.

    Для снятия логов с помощью Android Studio нужно:

    • Установить Android Studio
    • Создать новый проект в «Android Studio» (при создании нового проекта нужно правильно указать версию Android девайса, с которого необходимо снять логи)
    • Включить режим разработчика на Android девайсе
    • Подключить устройство через USB к компьютеру
    • Выбрать девайс в Android Studio
    • Выберите вкладку LogCat
    • Воспроизвести ошибку на девайсе или найти по дате воспроизведения логи (если мы знаем время, когда воспроизводилась проблема)
    • Выделить нужные логи и скопировать их (правой клавишей мыши → Copy или Ctrl+C)
    • Создать файл .txt, добавить в него логи и сохранить их

    Также для снятия логов с Android девайсов можно использовать Minimal ADB приложение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *