Символические отчеты о сбоях приложений iPhone - PullRequest
426 голосов
/ 22 сентября 2009

Я пытаюсь символизировать отчеты о сбоях моего приложения для iPhone.

Я получил отчеты о сбоях из iTunes Connect. У меня есть двоичный файл приложения, который я отправил в App Store, и у меня есть файл dSYM, который был сгенерирован как часть сборки.

У меня есть все эти файлы в одном каталоге, который индексируется с помощью spotlight.

Что теперь?

Я пытался вызвать:

symbolicatecrash crashreport.crash myApp.app.dSYM

и он просто выводит тот же текст, который находится в отчете о сбое, с которого он начинается, а не символически.

Я что-то не так делаю?

Ответы [ 25 ]

0 голосов
/ 05 января 2018

Мы используем Google Crashlytics для контроля аварийных журналов, ощущение очень своевременное и удобное в использовании.

Ссылки на документы: https://docs.fabric.io/apple/crashlytics/missing-dsyms.html#missing-dsyms

Все о пропавших dSYMs Fabric включает в себя инструмент для автоматической загрузки dSYM вашего проекта. Инструмент запускается через скрипт / run, который добавляется в фазу сборки Run Script во время процесса адаптации. Однако могут быть определенные ситуации, когда загрузка dSYM не удалась из-за уникальных конфигураций проекта или если вы используете битовый код в своем приложении. Если загрузка не удалась, Crashlytics не может символизировать и отображать сбои, и на панели управления Fabric появится предупреждение «Missing dSYM».

Отсутствующие dSYM могут быть загружены вручную, следуя шагам, описанным ниже.

Примечание: В качестве альтернативы автоматизированному инструменту загрузки dSYM Fabric предоставляет инструмент командной строки (символы загрузки), который можно настроить вручную для запуска в процессе сборки проекта. См. Раздел символов загрузки ниже для инструкций по конфигурации.

...

0 голосов
/ 09 января 2013

Я немного расстроился из-за того факта, что здесь ничего не "просто работает", поэтому я провел некоторое расследование, и в результате получилось:

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

Исправлено: загрузка отчетов о сбоях с сервера онлайн. Они называются «сбой» и по умолчанию идут в папку ~ / Downloads /. Имея это в виду, этот сценарий будет «делать правильные вещи», а отчеты о сбоях будут отправляться в Xcode (органайзер, журналы устройств) и символизация будет выполнена.

Сценарий:

#!/bin/bash
# Copy crash reports so that they appear in device logs in Organizer in Xcode

if [ ! -e ~/Downloads/crash ]; then 
   echo "Download a crash report and save it as $HOME/Downloads/crash before running this script."
   exit 1
fi

cd ~/Library/Logs/CrashReporter/MobileDevice/
mkdir -p actx # add crash report to xcode abbreviated
cd actx

datestr=`date "+%Y-%m-%d-%H%M%S"`

mv ~/Downloads/crash "actx-app_"$datestr"_actx.crash"

Вещи можно автоматизировать туда, куда вы можете перетаскивать Xcode Organizer, выполняя две вещи, если вы используете QuincyKit / PLCR.

Во-первых, вам нужно отредактировать удаленный скрипт admin / actionapi.php ~ строка 202. Похоже, что временная метка неверна, поэтому файл заканчивается именем «crash», которое Xcode не распознает ( он хочет что-то потерпеть крах):

header('Content-Disposition: attachment; filename="crash'.$timestamp.'.crash"');

Во-вторых, на стороне iOS в QuincyKit BWCrashReportTextFormatter.m ~ строка 176 измените @"[TODO]" на @"TODO", чтобы обойти плохих символов.

0 голосов
/ 26 ноября 2013

atos устарела, поэтому если вы используете OSX 10.9 или более позднюю версию, вам может потребоваться запустить

xcrun atos

Предупреждение: / usr / bin / atos перемещается и будет удален из будущей ОС Х релиз. Это теперь доступно в инструментах разработчика Xcode, чтобы быть вызывается через: xcrun atos

0 голосов
/ 20 ноября 2018

Я обнаружил, что большинство предложенных альтернатив не работает в последней версии XCode (протестировано с Xcode 10). Например, мне не повезло перетаскивание журналов .crash в Xcode -> Органайзер -> Журналы устройств - просмотр.

Я рекомендую использовать инструмент Symbolicator https://github.com/agentsim/Symbolicator

  • Git clone хранилище Symbolicator и скомпилируйте и запустите с Xcode
  • Скопируйте файл .crash (файл ascii, с трассировкой стека в начале файла) и .xarchive аварийного выпуска в ту же временную папку
  • Перетащите файл .crash на значок Symbolicator в Dock
  • Через 5-30 секунд символический файл сбоя создается в той же папке, что и .crash и .xarchive
0 голосов
/ 23 сентября 2009

Для обозначения сбоев Spotlight должен иметь возможность найти файл .dSYM, который был сгенерирован одновременно с двоичным файлом, который вы отправили в Apple. Поскольку он содержит информацию о символах, вам не повезет, если она недоступна.

...