Символьный журнал сбоев — Xcode 8 / приложение для macOS

#xcode #macos #cocoa #symbolicatecrash

#xcode #macos #какао #symbolicatecrash

Вопрос:

Я пытаюсь обозначить журнал сбоев, который я получил от пользователя по электронной почте.

Я использовал традиционную команду symbolicatecrash в Xcode.app, однако symbolicatecrash команда просто завершилась ошибкой и возвращает следующее сообщение.

 $/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash MY_APP.crash MY_APP.app.dSYM > readable.crash
Unsupported crash log version: 12 at /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash line 614.
 

И, как говорится, версия отчета журнала сбоев, которую я хочу обозначить, равна 12.

 Date/Time:             2016-10-15 15:40:42.625  0900
OS Version:            Mac OS X 10.12 (16A323)
Report Version:        12
 

Мое приложение — это чистое приложение Cocoa для macOS (ранее OS X, а не для iOS), созданное с использованием Xcode 8.0 для macOS Sierra, распространяемое в Mac App Store и написанное на Swift.

Между тем, органайзер Xcode 8.0 успешно отображает журнал сбоев той же версии приложения, которые были получены через MAS. Итак, я полагаю, файл dSYM, по крайней мере, правильный. Но что-то идет не так.

Кто-нибудь знает, как я могу обозначить обычный текстовый журнал сбоев, версия отчета которого равна 12?

Ответ №1:

Наконец, я нашел, как обозначить мой журнал сбоев для приложения macOS!

Я следовал инструкциям в приведенной ниже сути и получил понятные для человека строки.

Как символизировать журналы сбоев OSX — суть

Таким образом, кратко говоря, например, для этой строки:

 0   com.MY_DOMAIN.MY_APP        0x000000010febce85 0x10fdc1000   1031813
 

запустите следующую строку в терминале:

 atos -o MY_APP.app/Contents/MacOS/MY_APP -arch x86_64 -l 0x10fdc1000 0x000000010febce85
 

затем вы получите читаемую строку:

 Document.init() -> Document (in MY_APP) (DefaultKey.swift:85)
 

Комментарии:

1. извините, ваше объяснение выглядит простым в теории, но посмотрите на этот журнал сбоев . Где мне найти адреса, которые вы упоминаете в этом беспорядке? Спасибо за любую помощь.

Ответ №2:

Используйте эту команду для обозначения всего файла. Замените MyApp и MyCrashFile соответствующими значениями и адресом памяти (0x102e27000), чтобы следующая строка:

Thread 0 Crashed:
0 com.bundle.identifier 0x0000000102f0bfb5 0x102e27000 937909

становится:

 xcrun atos -o MyApp.app/Contents/MacOS/MyApp -arch x86_64 -l 0x102e27000 -f MyCrashFile.crash > c.sym.txt amp;amp; open c.sym.txt
 

Протестировано на Mojave с Xcode 10.3