2016-05-17 2 views
1

Я внедрил приложение, которое использует PLCrashReporter как способ обработки Crash. , и он извлекает отчет, который может быть переключен в читаемый человеком формат.получить полные данные от PLCrashReport

Incident Identifier: E125648C-6BCF-4F69-9950-C8CDFB0535D3 
CrashReporter Key: e681450ca18f97638adb5f7295a4af24103b92ae 
Hardware Model:  iPad5,4 
Process:    CrashReport [6918] 
Path:    /private/var/mobile/Containers/Bundle/Application/FA6CA909-C229-457F-9EF0-35B889481B63/CrashReport.app/CrashReport 
Identifier:   net.example.CrashReport 
Version:    1 (1.0) 
Code Type:   ARM-64 (Native) 
Parent Process:  launchd [1] 

Date/Time:   2016-05-15 16:40:51.199 +0430 
Launch Time:   2016-05-15 16:40:44.122 +0430 
OS Version:   iOS 8.4.1 (12H321) 
Report Version:  105 

Exception Type: EXC_CRASH (SIGTRAP) 
Exception Codes: 0x0000000000000000, 0x0000000000000000 
Triggered by Thread: 1 

Thread 0 name: Dispatch queue: com.apple.main-thread 
Thread 0: 
0 CrashReport      0x00000001000663a4 0x100060000 + 25508 
1 CrashReport      0x00000001000662ac 0x100060000 + 25260 
2 CrashReport      0x0000000100066304 0x100060000 + 25348 
3 UIKit       0x0000000187b411e8 0x187afc000 + 283112 

со всеми подробностями о модели приложений и аппаратного обеспечения, но No Line или имя класса!

Я много искал и узнал, что должен использовать символ процесс.

  • некоторые сказали, чтобы использовать .dSYM, но приложение еще не на яблочном магазине
  • некоторое другое решение было работать с report.crash и что-то подобное, но я не мог найти этот файл в мой применение
  • Я хочу, чтобы строки коды для отправки из приложения, а не обрабатывать его из XCode или некоторых других инструментов

в финале: мне нужно некоторые коды, чтобы извлечь номер строки и функцию из PLCrashReport, используйте Swift. Я не очень хорошо на Objective C.

Благодаря

ответ

2
  1. Вы должны symbolicate отчет аварии, например, используя тот же инструмент, который использует Xcode, который равен symbolicatecrash.pl. Здесь есть много обсуждений, которые ссылаются на это. Следующая ссылка содержит один из многих ответов, которые охватывают это: How to Manually Symbolicate iOS Crash to View Crash Logs

  2. Также вам нужен точный dSYM, который был создан с помощью сборки, которая вызвала сбой, без dSYM вышеупомянутый инструмент не может предоставить никаких полезных данных и, в частности, не может предоставить вам имена классов, имена методов, имена файлов или номера строк. DSYM генерируется каждый раз, когда вы создаете приложение в Xcode. Это не имеет ничего общего с App Store. Проверьте папку сборки, в которой находится пакет приложения. Если вы его не видите, вы измените настройки сборки. На следующей странице показана настройка сборки, которую необходимо включить: https://support.hockeyapp.net/kb/client-integration-ios-mac-os-x-tvos/how-to-solve-symbolication-problems#build-settings-for-getting-proper-symbol-data

  3. Невозможно получить номера строк непосредственно из приложения, так как бинар не предоставляет необходимую информацию в любое время. Вам необходимо символизировать отчет о сбое с помощью вышеупомянутого инструмента и вышеупомянутого dSYM для получения номеров строк.

  4. Как невозможно получить номера строк только с использованием бинарных файлов приложений, также невозможно получить их во время выполнения. Следовательно, не имеет значения, если вы закодируете что-то в Swift или Objective-C, это не имеет значения.

+0

Спасибо, что помогло получить более подробную информацию о символике. и еще один вопрос. должен ли я использовать двоичный файл, или я должен изменить его читаемый человеком формат и сохранить его в виде текстового файла? какой из них необходим для обозначения инструментов? –

+0

сценарий символики, о котором я говорил, понимает только текстовый формат, а не двоичный формат – Kerni

Смежные вопросы