Как символизировать отчет о сбое приложения Mac OS X, которое пользователь отправил мне по электронной почте?
Я работаю над приложением, которое я отправил нескольким бета-тестерам. Всего за несколько минут после запуска приложения пользователь получил сбой. Когда появилось окно с сообщением о том, что приложение разбилось, он скопировал весь текст в разделе "подробности" и отправил его мне по электронной почте. Я сохранил текст в текстовом файле и дал ему .расширение crash, которое заставляет его открываться консолью, как обычный отчет о сбоях, поэтому я думаю, что у меня есть расширение (но, возможно, нет).
Версию я послал был построенный Xcode с опцией архива, чтобы Xcode знал, где приложение и .dSYM являются.
Я знаю, что с приложениями iPhone вы можете перетащить отчет о сбоях в органайзер, и Xcode будет символизировать его для вас. Я не могу найти нигде, что будет принимать отчет о сбоях Mac.
Я посмотрел на atos
но он говорит о местоположениях памяти, включая местоположение приложения, и я не вижу эту информацию, указанную в отчете, который у меня есть. Глядя на отчет о сбоях raw, похоже, что контроллер вида был выпустили рано, но я не могу сказать, было ли это причиной или симптомом.
Мой реальный вопрос: есть ли способ, чтобы Xcode символизировал отчет или инструмент, который я могу просто передать .dSYM файл, приложение, и отчет и вернуть symbolicated отчет?
Я просмотрел весь Google, но все, что я нашел (кроме ранее упомянутых man-страниц для atos
) о symbolicating отчеты iPhone, а не Мак ОС Х из них.
3 ответов
или как в ответе https://stackoverflow.com/a/18354072/317461
поместите свою сборку выпуска и ваш .dSYM файл в том же каталоге и открыть терминал
$cd directory
$lldb MyApp.app
(lldb) image lookup -v --address 0x00085f3c
У нас была та же проблема с нашим приложением, и я символизировал отчеты о сбоях вручную строка за строкой с atos
.
Теперь я изменил сценарий symbolicate Apple, чтобы он работал с приложениями Mac и отчетами о сбоях из PLCrashReporter.
https://github.com/lksnmnn/Symbolicate-CrashReports
как использовать:
убедитесь, что вы имеете следующие файлы на вашем компьютере:
- отчет о крушении:отчет.crash
- файл dSYM вашего приложения:MyApp.dSYM
- папка исполняемого файла / приложения вашего приложения:MyApp.app
- улучшение symbolicate скрипт: symbolicatecrash
Теперь перейдите в командную строку (терминал) и сделайте следующее:
# set the developer directory
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
# Now run the script
/Path/To/symbolicatecrash /Path/To/report.crash > /Path/To/readable_report.crash
# Use -v for verbose logging.
скрипт найдет ваш dSYM и ваш исполняемый файл и symbolicates сколько это банки. Теперь вы найдете свой symbolicated отчета в указанный выходной файл readable_report.crash
параметры построения:
для правильных отчетов и символов установите следующие настройки сборки:
Strip Debug Symbols During Copy: Yes
Strip Style: All Symbols
Strip Linked Product: Yes
Edit: улучшен ответ, чтобы он согласовывался с политикой ответа переполнения стека.
вы можете использовать GDB для Symbolication, поставить вашу сборку и ваш .файл dSYM в том же каталоге открыть терминал
$ cd directory
$ gdb MyApp.app
(gdb) info line *0x00085f3c