Sunday, July 5, 2009

Crash Log Symbols

A few days ago my application got rejected from AppStore :(

What they sent me was a crash log. It had a bad access exception and stack traces of a couple of threads. But the poor thing about all this was that there were no symbols in the stack traces. There were only addresses of the methods :S


I google'd this problem alot and found that there is a script named symbolicatecrash at this path:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneRemoteDevice.xcodeplugin/Contents/Resources/

If you have the .dSYM and .app file of the build you sent to Apple, you can use these two files two generate the symbols in the crashlogs.

Fortunately I had those files and I used that script but the result was that only iPhone classes were symbolicated.

I google'd the problem again and found that there is something wrong with the script. By some searching on the internet i was able to find the correct script. Its in perl language.

using that script i was successfully able to generate symbols of the crash logs.

You can do it like this (Assume your application name is pingpong):

1. Copy the .dSYM , .app , the perl script in any folder.
2. open terminal and go to that folder.
3. Execute command:

perl symbolicatecrash.pl pingpong.crash pingpong.dSYM pingpong.app > sym_pingpong.crash


After the successful execution of this command your symbolicated crash log will be sym_pingpong.crash


You can get the script from this link:

http://gist.github.com/131425


Sami