Как правильно обозначать отчеты о сбоях PLCrashReporter с помощью файлов dSYM?IOS

Программируем под IOS
Ответить
Anonymous
 Как правильно обозначать отчеты о сбоях PLCrashReporter с помощью файлов dSYM?

Сообщение Anonymous »

В настоящее время я оцениваю настройку, в которой мое приложение для iOS использует PLCrashReporter для создания отчетов о сбоях на устройстве пользователя и загрузки их на свой сервер для последующего анализа.
Обнаружение сбоев, создание отчетов и сама загрузка работают нормально.
С чем я борюсь, так это с правильной символизацией полученных отчетов.

Текущая настройка

Код: Выделить всё

import CrashReporter

let config = PLCrashReporterConfig(
signalHandlerType: .BSD,
symbolicationStrategy: []
)

let reporter = PLCrashReporter(configuration: config)
try reporter.enableAndReturnError()

if reporter.hasPendingCrashReport(),
let data = reporter.loadPendingCrashReportData() {

// Upload `data` (base64 encoded) to server
reporter.purgePendingCrashReport()
}
На сервере/машине разработчика я декодирую отчет и преобразую его с помощью plcrashutil:

Код: Выделить всё

plcrashutil convert --format=ios crash.plcrash > crash.txt
Это создает действительный журнал сбоев в стиле iOS, но трассировки стека не обозначаются символами (только адреса, без имен методов).

У меня есть правильные файлы dSYM для сборки (из архивов Xcode).
  • Какой сегодня рекомендуется и надежный рабочий процесс для обозначения отчетов о сбоях PLCrashReporter с использованием файлов dSYM?
    />
  • Достаточно ли одного plcrashutil или ожидается двухэтапный процесс (plcrashutil → символикатекреш)?
  • Существуют ли ограничения при работе со сборками симулятора/не из App Store, которые влияют на символизацию?
  • Существует ли официально поддерживаемый способ явного применения dSYM к отчету PLCrashReporter или автоматический поиск является единственным вариантом?
    />
  • Учитывая эти ограничения, каков наилучший подход к обработке отчетов о сбоях PLCrashReporter за пределами сторонних служб?

Код: Выделить всё

plcrashutil
, похоже, не имеет опции --dsym:

Код: Выделить всё

$ plcrashutil symbolicate --dsym my.app.dSYM crashlog.crash > crashlog_symbolicated.crash

Usage: plcrashutil  
Commands:
convert --format= 
Convert a plcrash file to the given format.

Supported formats:
ios - Standard Apple iOS-compatible text crash log
iphone - Synonym for 'iOS'.
Поэтому единственная доступная команда — конвертировать.
Я извлек последнюю версию из репозитория PLCrashReporter на GitHub и скомпилировал включенную версию ptcrashutil.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... dsym-files
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»