Search code examples
xcodemacoscocoasymbolicatecrash

Symbolicate crash log - Xcode 8 / macOS app


I'm trying symbolicating a crash log that I received from an user by e-mail.

I used traditional symbolicatecrash command in Xcode.app, however symbolicatecrash command just failed and returns the following message.

$/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.

And as it says, the report version of the crash log I wanna symbolicate is 12.

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

My app is a pure Cocoa app for macOS (formerly OS X, not for iOS) that was build with Xcode 8.0 on macOS Sierra, distributed on the Mac App Store and written in Swift.

Meanwhile, Xcode 8.0's organizer successfully symbolicates crash log of the same app version that were received via MAS. So I suppose, the dSYM file is at least correct. But something is going wrong.

Does anyone know how I can symbolicate plain-text crash log its report version is 12?


Solution

  • Finally, I found how to symbolicate my crashlog for macOS app!

    I've followed the instruction in the gist below and obtained human-readable lines.

    How to symbolize OSX crash logs -gist

    Thus, briefly speaking, for instance for this line:

    0   com.MY_DOMAIN.MY_APP        0x000000010febce85 0x10fdc1000 + 1031813
    

    run the following line in Terminal:

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

    then you'll get the readable line:

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