Search code examples
ioscrash-reportssymbolicatecrash

Reading production crash log in iOS application


I have a crash report from a production iOS app, which was automatically logged into our own server. The crash log is a string combination of [NSException description] and [NSException callStackSymbols], looks as follow:

Terminating app due to uncaught exception: *** setObjectForKey: object cannot be nil (key: dict_key). 

    0   CoreFoundation                      0x2f00dee3 <redacted> + 154
    1   libobjc.A.dylib                     0x397a4ce7 objc_exception_throw + 38
    2   CoreFoundation                      0x2ef4917f <redacted> + 818
    3   MyAppName                           0x0010ef3f MyAppName + 229183
    4   MyAppName                           0x000e5401 MyAppName + 58369
    5   MyAppName                           0x000e4ac1 MyAppName + 56001
    6   UIKit                               0x31843a33 <redacted> + 518

    ... (Removed for brevity)

Having this information, how can I produce a .crash file that can be read by symbolicatecrash command? Can I simply store this crash log in a text file and name it with .crash extension?

Thanks!


Solution

  • You'll need the dSYM file generated when you compile the app. To get this you should go to your .app file on Xcode and right click on it and show in finder, then you should create a folder with the dSYM file inside as well as your app and then run the atos command inside the folder: atos -arch armv7 -o YOURAPP.app'/'yourapp' 0xe4ac1 - 56001 = 0xD7000

    Wish it helps!