I used the following script to symbolize the crash report I got from the user:
/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins
There is a new Symbolicator script that has been released that might help
(Xcode 4.2) symbolicatecrash is a perl script that uses spotlight to locate the dSYM files that belong to the app that crashed. If you run symbolicatecrash with the -v (verbose) option you'll see something like: Searching in Spotlight for dsym with UUID of ... Running mdfind "com_apple_... == ..."
So, be sure that spotlight works, and the indexing for spotlight is active for the volume where your stuff is located, with the mdutil command: mdutil -s -a If the volume your archived Apps are on is not indexed be sure to switch indexing on. (As root/sudo: mdutil -i on /Volumes/...)
As Craig Hockenberry points out, the dSYM file you use for this must be the exact one produced when you compiled the version of the application your user is running. If you did not save that file, you will be unable to resolve the symbols within your own application. You can't use whatever dSYM file is produced by your latest build to run against an older submitted version of your application.
UPDATE In XCode 4, circa 2012, symbolification works great in the XCode Organizer, even if the dSYMs have a space in their path (I think).
p.s. keep your dSYMs under version control
UPDATE As of XCode 3.2.5 (November 2010) the symbolification done in Device Logs in the Organizer Window seems to work pretty well.
First of all, symbolicatecrash is rubbish*, but before diving in and fixing it, make sure that your .app bundle is in the same directory as your .dSYM.
Do you have dots or dashes in the app file name or identifier? If so, you should apply the Alan Quatermain fix. It's intended for reading 3.0 crashdumps in a 2.x environment, but it also correctly handles dots and dashes in the app name and ID. Duh. Regular expressions am hard.
After that you're going to have to hack perl. Try ./symbolicatecrash -Av mycrash.crash > /dev/null to see where it's going wrong.
For my problem, I had to comment out both the quoteMeta($dsymdir); and chop($executable); lines. Then I had something that vaguely worked.
And this was a shipping product. Welcome to the future.
As of *SDK 2.2.1, who knows, maybe in the 3.0 GM it's robust. It could happen.
There is a known issue in the symbolicatecrash utility that ships with iPhone SDK 2.2.1 also, if that's the SDK you're currently using. You need to download the new binary from http://developer.apple.com/iphone/library/technotes/tn2008/tn2151.html
Hope this helps your troubles.