#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