As an iPhone developer it's crucial to be able to make sense of those pesky crash logs you get back from your testers. Unfortunately Apple's tools offerings in in this area aren't much to write home about -- they appear to require a few specific pre-conditions to be met.

Make sure you have the necessary intermediary build files to hand:

  1. Create the symbol files -- *.dSYM -- as part of your build process.
  2. Keep a copy of your symbol files and your Application Bundle for any builds you wish to debug.

When setting up your environment, experimentation shows that the following is required:

  • Snow Leopard -- while I have seen nothing official, I have been unable to get the scripts to work on a Leopard machine.
  • The Application Bundle and symbol file should be placed in the same directory as your crash log.
  • There should be no other copies of the symbol file on your Mac -- Symbol files are located by the script using Spotlight and it gets confused if there are multiple copies.

Symbolising a crash should then simply be a matter of running something like the following command:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash -A -v crash.log  > decoded.log