Your App crashes on the device - and then?

It happened. Sooner or later it had to be. My App crashed on the device. What to do now? First of all look at the watch and notice the current time! Now I will explain step by step how to get a readable stacktrace of our problem.

Step 1: Get the crash file

That's quite easy. Connect your device to your Mac, open Xcode, goto Window->Devices and open the device log

And here comes the point with time of the crash. If you know when it happened, its very easy to find the fitting crash entry.

Now we have a .crashfile, but sadly without any symbol information.

Step 2: Get the symbols

The symbols are stored in the compilation folder (the compilation folder on the MAC!!) and have the ending .dSYM. The compilation folder can be found in the build logs. Usually something like /Users/<YourNam>/Library/Caches/Xamarin/mtbs/builds/<SolutionName>/<GUID>/bin/iPhone/Debug/. For App Store deployments it is a wise thing to store the symbol files, so always backup them!

Step 3: The "symbolification"

This is a little bit tricky, but there is a good description on https://github.com/robovm/robovm/wiki/Symbolicate-a-crash-reports. The steps here: * Goto the shell * Find the symbolicatecrash tool and make an alias: alias sc='/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash' * Run the tool sc -v "My.crash" My.app.dSYM/ > symbol.crash 2>error.log

Step 4: Were done! Now you should have a readable Stacktrace and hopefully a clue whats going on.