views:

475

answers:

3

I'm doing some beta testing. I've got a crash and trying to figure it out. If I connect the iPhone, I can see the Crash Report in the XCode organizer. So I see this (my app is called Lineskipper):

Thread 0 Crashed:
0   libobjc.A.dylib                 0x323fe6f4 0x323fc000 + 9972
1   UIKit                           0x32ba205e 0x32b60000 + 270430
2   UIKit                           0x32ba1ffe 0x32b60000 + 270334
3   UIKit                           0x32ba1fd0 0x32b60000 + 270288
4   UIKit                           0x32ba1d2a 0x32b60000 + 269610
5   UIKit                           0x32ba263e 0x32b60000 + 271934
6   UIKit                           0x32ba1656 0x32b60000 + 267862
7   UIKit                           0x32ba1032 0x32b60000 + 266290
8   UIKit                           0x32b9d928 0x32b60000 + 252200
9   UIKit                           0x32b9d3a0 0x32b60000 + 250784
10  GraphicsServices                0x32913b72 0x3290f000 + 19314
11  CoreFoundation                  0x32567c26 0x32511000 + 355366
12  CoreFoundation                  0x32567356 0x32511000 + 353110
13  GraphicsServices                0x32912cb8 0x3290f000 + 15544
14  GraphicsServices                0x32912d64 0x3290f000 + 15716
15  UIKit                           0x32b62768 0x32b60000 + 10088
16  UIKit                           0x32b6146c 0x32b60000 + 5228
17  LineSkipper                     0x000022e0 0x1000 + 4832
18  LineSkipper                     0x0000229c 0x1000 + 4764

Not particularly helpful. From what I understand, I need to symbolize. So I read this little nugget of wisdom in Apple TN2151

Given a crash report, the matching binary, and its .dSYM file, symbolication is relatively easy. The Xcode Organizer window has a tab for crash reports of the currently selected device. You can view externally received crash reports in this tab - just place them in the appropriate directory. This is the same as the Mac OS X directory described in the first section. It doesn't matter which device you have tethered, but the directory in which you place the crash report must be the directory for the tethered and selected device.

It is not necessary to place the binary and .dSYM file in any particular location. Xcode uses Spotlight and the UUID to locate the correct files. It is necessary, though, that both files be in the same directory and that this directory is one that is indexed by Spotlight. Anywhere in your home directory should be fine.

So basically, I don't get it. I drag the crash report out of the organizer, put it in the directory Apple references here (~/Library/Logs/CrashReporter/MobileDevice/) and then... I double-click it. It opens up the console app, and I see exactly what I saw in the Organizer.

So did I do something wrong? How do I know I did it? How do I view the console file so that I know exactly where the crash was?

+1  A: 

This SO question might help.

Alex Reynolds
In particular, pay attention to the tips there on making sure that your .dSYM file for this exact build is found via Spotlight.
Brad Larson
+3  A: 

Be sure to save the .dSYM file associated with the ad ho build. It cannot be recreated later.

David Dunham
A: 

Turns out that, after pulling my hair out for some time, my dSYM/app were out of sync with the crash report. Oops.

Of course, discovering that is no small feat - this thread on the Apple forum showed me how to determine whether or not the files match up.

Another thing I realized during this whole debacle was that I was missing a lot of stuff - if you see errors like "file not found" and what not, make sure you have all of the proper UNIX tools installed. If not, it must be easier to just redownload XCode and reinstall it, checking off the UNIX tools option during the install process.

bpapa