Мое приложение iOS потерпело крах. Я хотел бы прочитать журнал сбоев с файлом dSYM. Как это возможно?
Как декодировать журнал сбоев с использованием файла dSYM в iOS?
Ответ 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