iosxcodesymbolicateotool

Symbolicating Crash Report ios


Along with crash report, I've .app and .dSYM package as well. I'm trying to symbolicate the crash report by running the following command

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash crash.crash > SymbolicatedPaperio.crash

The first few lines of exception stack trace looks like,

Last Exception Backtrace: 0 CoreFoundation 0x00000001898a61c0 0x189777000 + 1241536 1 libobjc.A.dylib 0x00000001882e055c 0x1882d8000 + 34140 2 CoreFoundation 0x00000001898a6094 0x189777000 + 1241236 3 Foundation 0x000000018a333808 0x18a285000 + 714760 4 UIKit 0x000000018f984848 0x18f6f1000 + 2701384 5 UIKit 0x000000018f9a4fac 0x18f6f1000 + 2834348 6 CoreFoundation 0x00000001898537dc 0x189777000 + 903132 7 CoreFoundation 0x000000018985140c 0x189777000 + 893964 8 CoreFoundation 0x0000000189780068 0x189777000 + 36968 9 paperio 0x00000001000b0d80 0x1000a4000 + 52608 10 paperio 0x00000001000bf0fc 0x1000a4000 + 110844 11 UIKit 0x000000018f768f3c 0x18f6f1000 + 491324 12 UIKit 0x000000018f987158 0x18f6f1000 + 2711896 13 FrontBoardServices 0x000000018b4365e8 0x18b413000 + 144872 14 Foundation 0x000000018a345794 0x18a285000 + 788372 15 BaseBoard 0x000000018b3b0f00 0x18b37e000 + 208640 16 FrontBoardServices 0x000000018b4306a8 0x18b413000 + 120488 17 FrontBoardServices 0x000000018b4363c4 0x18b413000 + 144324 18 UIKit 0x000000018f9885c0 0x18f6f1000 + 2717120 19 UIKit 0x000000018f988264 0x18f6f1000 + 2716260 20 UIKit 0x000000018fcb9ba4 0x18f6f1000 + 6065060

For the first line, on my mac, it is not symbolicated and the output remains same (as the non-symbolicated line above). However, on a different mac, I can see the output as:

0 CoreFoundation 0x00000001898a61c0 __exceptionPreprocess + 124

This is happening for all the frameworks and libraries. Want to understand what possibly could be missing on my mac - that its not symbolicating properly and how to fix this.


Solution

  • Basically, to symbolicate libraries and framework's method, we need to have symbols for the iOS version for which crash was generated. These are (by default) present in ~/Library/Developer/Xcode\iOS DeviceSupport. So, if the symbol for correct iOS version is not present here - the symbolicator would not be able to properly decrypt the reports.