Всем привет! Я Tech Lead QA в мобильной разработке. При тестировании приложений иногда сталкиваемся со сбоем приложения. И в таких ситуациях очень важно уметь собирать логи с устройства, чтобы максимально быстро пофиксить ошибки. В этой статье я хотел бы рассказать, как мы это делаем в Альфа-Банке.
Осторожно, в статье много картинок.
Как получить логи с Android?
Есть, как минимум, 3 способа, с помощью которых можно получить логи при краше приложения:
По USB из Android Studio.
По USB через утилиту adb.
Через приложение Crash Log Viewer — Show App Cr.
Перед тем, как начать снимать логи одним из трех перечисленных способов, настраиваем и подключаем девайс по USB.
Подготовка девайса
№1. Включаем режим разработчика. У разных моделей и производителей этот режим включается по разному. Но тут нет ничего сложного, 5 минут погуглить, как включается этот режим у вашей модели и всё получится.
№2. Переходим в настройки и заходим в раздел «Для разработчика» и включаем «Отладку по USB».

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

Девайс готов, теперь можно снимать логи. Рассмотрим первый способ.
Android Studio
Есть два способа установить Android Studio на ПК.
С официального сайта developer.android.
Скачиваем и устанавливаем себе JetBrain Toolbox.
Я предпочитаю второй способ, потому как легко обновлять Android Studio и заодно можно установить другие продукты JetBrain.
№1. После установки Android Studio на ПК запускаем приложение, создаём любой проект и переходим в раздел «Logcat».

№2. Выбираем девайс, подключенный по USB, и уровень логирования error.

№2.1. Можно составить фильтр из нескольких условий. Например, уровень логирования и названия приложения, которое хотите отфильтровать. Тогда мы получим логи только по этим параметрам.

Готово. Чтобы получить логи краша приложения и передать их компетентным сотрудникам (или разобраться самому) этого достаточно. Если этого алгоритма недостаточно — есть другие способы фильтрации, описанные на официальном сайте Android Studio.
Перейдем ко второму способу.
Android Debug Bridge (adb)
Сначала идем на официальный сайт Android по ссылке и устанавливаем на ПК утилиту adb.
№1. Открываем консоль и ищем ID девайса.
adb devices
№2. Получаем ID девайса, подключенного по USB.
List of devices attached
8HVKGMRKN78TMZYH device
8HVKGMRKN78TMZYH
— ID моего девайса. У вас он будет другим, но состоящим из подобного набора символов.
№3. Запускаем сбор логов с устройства в файл, командой.
adb logcat -b crash > log_crash_am.log
Теперь на смартфоне можно повторить действия, которые приводят к сбою приложения.
Чтобы остановить сбор логов, достаточно в консоли нажать комбинацию CTRL+C. Готово.
И последний способ получить логи с Android — через приложение…
Crash Log Viewer — Show App Cr
С Google Play устанавливаем приложение на девайс.

№1. Запускаем приложение и выбираем Crash Log Viewer.

После чего должно открыться окно с двумя adb командами.

№2. Открываем терминал на ПК и последовательно выполняем 2 команды, которые были указаны в приложении.
adb shell pm grant com.arumcomm.crashlogviewer android.permission.PACKAGE_USAGE_STATS
adb shell pm grant com.arumcomm.crashlogviewer android.permission.READ_LOGS
№3. Отключаем девайс от ПК после выполнения команд.
Теперь мы готовы к сбору логов через Crash Log Viewer. При любом краше приложение будет автоматически их собирать.
Чтобы получить или отправить логи запускаем приложение, переходим в раздел «Crash Log Viewer». Там появится список приложений, у которых был краш.

Логи приПереходим в интересующее приложение и смотрим логи, когда приложение «крашнулось».

Логи можно скопировать или поделиться.

Мне нравится снимать логи краша приложения на Android при помощи приложения, потому что:
девайс не нужно каждый раз подключать по USB к ПК;
не нужно настраивать фильтрацию и потом искать нужные записи в логах.
Как получить логи с iOS?
Есть 2 способа:
Непосредственно на самом девайсе.
Через Xcode.
Начнем с девайса.
Снять логи непосредственно с девайса iOS
№1. Переходим на iOS в «Настройки» → «Конфиденциальность».

№2. Идем в раздел «Аналитика и улучшения».

№3. Открываем «Данные Аналитики».

И попадаем в список логов девайса.

№4. Чтобы отфильтровать логи интересующего приложения, вводим в строку поиска его название.

№5. Проваливаемся в запись и видим логи приложения.

Теперь вы знаете, где хранятся логи в iOS и после воспроизведения краша приложения сможете найти их и отправить своим коллегам.
Переходим ко второму способу.
Сбор из приложения XCode
Этот способ требует определённой подготовки.
Для начала устанавливаем XCode на Mac. Да, к сожалению iOS дружит только с себе подобными.

Из-за большого размера XCode может устанавливаться немного дольше, чем вы планировали, так что можно налить себе чаёк и посмотреть любимый сериальчик.
Итак, XCode установлен,, теперь можно приступать к сбору логов.
№1. Подключаем девайс к Mac по USB и запускаем XCode.
Если появился запрос «Доверять этому компьютеру?» жмём «Доверять».

№2. В XCode переходим «Window» → «Devices and Simulators».

№3. Нажимаем «Open Console».

Откроется окно, в котором будут отображаться логи iOS.
№4. Для начала вывода логов в консоль нажимаем «Начать».

После этого в консоль начнут «сыпаться» логи.
№5. Для сбора логов только при краше приложения выбираем тип логов «Ошибки и сбои».

№6. Нажимаем на строку поиска, затем на клавиатуре нажимаем стрелку вправо —> и вводим название приложения, чтобы получилось примерно такое.

И нажимаем Enter.
Готово.
Подведение итогов
Надеюсь моя статья облегчит процесс сбора логов и сделает вашу работу хоть чуточку, но интересней и приятней. Спасибо за внимание и отличного вам настроения.
Статьи, которые могут быть интересны:
Эксперименты на 3,5 квадратах: качнул сетап от «бомж-уровня» до «мини-студии»
Как у нас почти получилось сделать автономного робота для «Битвы Роботов»
Как дизайнеру с помощью макетов оптимизировать процессы и сэкономить время
База об организации процесса разметки: команда, онбординг, метрики
Подписывайтесь на Телеграм-канал Alfa Digital. Рассказываем о работе в IT и Digital, делимся полезными советами, новостями, видео с митапов, краткими выжимками из статей и многим другим, иногда шутим.
Подписывайтесь на блог Альфа-Банка на Хабре, впереди много хороших статей.