Как символизировать отчет о сбое приложения Mac OS X, которое пользователь отправил мне по электронной почте? - PullRequest
9 голосов
/ 22 мая 2011

Я работаю над приложением, которое я отправил нескольким бета-тестерам.Всего через несколько минут после запуска приложения у пользователя произошел сбой.Когда всплыло окно с сообщением о сбое приложения, он скопировал весь текст в разделе сведений и отправил его мне по электронной почте.Я сохранил текст в простой текстовый файл и дал ему расширение .crash, которое заставляет его открываться консолью, как обычный отчет о сбое, поэтому я думаю, что у меня есть право на расширение (но, возможно, нет).Версия, которую я разослал, была создана Xcode с опцией Archive, чтобы Xcode знал, где находится приложение и .dSYM.Я знаю, что с приложениями для iPhone вы можете перетащить отчет о сбое в органайзер, и XCode будет символизировать его для вас.Я не могу найти нигде, что будет принимать отчет о сбое Mac.Я посмотрел на atos, но в нем говорится о местах памяти, включая местоположение, в котором работало приложение, и я не вижу этой информации в моем отчете.Глядя на необработанный отчет о сбое, кажется, что контроллер представления был выпущен рано, но я не могу точно сказать, было ли это причиной или симптомом.Мой настоящий вопрос:Есть ли способ, чтобы XCode символизировал отчет или инструмент, который я мог бы просто передать .dSYM-файл, приложение и отчет и вернуть символизированный отчет?Я просмотрел весь Google, но все, что я нахожу (кроме ранее упомянутых справочных страниц для atos), касается символических отчетов iPhone, а не Mac OS X.

Ответы [ 3 ]

3 голосов
/ 28 августа 2013

Или как в ответе https://stackoverflow.com/a/18354072/317461

Поместите сборку релиза и файл .dSYM в один каталог и откройте терминал

$cd directory
$lldb MyApp.app
(lldb) image lookup -v --address 0x00085f3c
1 голос
/ 26 февраля 2016

У нас была та же проблема с нашим приложением, и я символически отображал отчеты о сбоях построчно с atos.

Я теперь настроил символический скрипт Apple, чтобы он работал с приложениями Mac и отчетами о сбоях из PLCrashReporter.

https://github.com/lksnmnn/Symbolicate-CrashReports

Как это использовать:

Убедитесь, что на вашем компьютере есть все следующие файлы:

  1. Отчет о сбое: report.crash
  2. Файл dSYM вашего приложения: MyApp.dSYM
  3. Папка исполняемого файла / app вашего приложения: MyApp.app
  4. Улучшенный сценарий символьных символов: символьных ошибок

Теперь перейдите в командную строку (Терминал) и выполните следующее:

# 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 и ваш исполняемый файл и символизирует столько, сколько может. Теперь вы найдете свой символический отчет в указанном выходном файле readable_report.crash

Настройки сборки:

Для правильных отчетов и символов установите параметры сборки на это:

Strip Debug Symbols During Copy: Yes
Strip Style: All Symbols
Strip Linked Product: Yes

Изменить: Улучшен ответ, так что он соответствует политике ответов переполнения стека.

0 голосов
/ 21 августа 2013

Вы можете использовать GDB для Symbolication, поместить свою сборку релиза и файл .dSYM в один и тот же каталог, открытый терминал

$ cd directory
$ gdb MyApp.app
(gdb) info line *0x00085f3c  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...