Как декодировать журнал сбоев с использованием файла dSYM в iOS?

Мое приложение iOS потерпело крах. Я хотел бы прочитать журнал сбоев с файлом dSYM. Как это возможно?

Ответы

Ответ 1

Прежде всего, вам нужны три файла: файл dSYM, файл приложения и журнал сбоев.

Откройте X-код, в навигаторе проекта откроется папка "Продукты" и "Показать в поиске" файл приложения. Здесь вы также найдете файл dSYM. Скопируйте их в папку.

Теперь откройте терминал и перейдите в папку, которую вы скопировали ранее два файла. Выполнить: dwarfdump --uuid Application_name.app/Application_name Вы должны получить UUID приложения. Выполните следующую команду: dwarfdump --uuid Application_name.app.dSYM - вы снова получите UUID, который должен соответствовать ранее полученному UUID.

Откройте журнал сбоев (X Code - Organizer - сбой) и найдите строку, где отображается название "Двоичные изображения". Вот еще один UUID в первой строке, который должен снова совпадать с ранее полученным в терминале.

Теперь вы уверены, что авария была зарегистрирована в сборке, которую вы изучаете, поэтому снова открывайте файл журнала сбоев, найдите раздел Thread 0 и должны быть две строки с именем вашего приложения и двумя адресами. Например:

Application_name 0x123456
Application_name 0x987654

В терминале вы должны запустить сейчас: atos -arch armv7 -o address1 address2 (адрес1 и address2 должны быть заменены двумя предыдущими адресами, а armv7 - с вашей системой - это показано на строках, где вы получили UUID).

Счастливая отладка!

EDIT: Я хотел бы упомянуть этот в качестве базы.

Ответ 2

Собственно, вы не можете декодировать файл dSYM, но получите от него ошибку  1. Найдите поток аварий и адрес из файла журнала: следующее - 0x0nnn  2. Найдите собственный тип кода из файла журнала: следующее - arm64
 3. Найдите файл dSYM (файл символа), извлеките из .xcarchive: следующее xx.app.dSYM

dwarfdump --lookup 0x0nnn --arch=[arm64 armv6 armv7] xx.app.dSYM