Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Symbolicate adhoc iphone app crashes

I can't manage to make my code symbolicated ... I read the part "below" :

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.

But it doesn't work for me ... here is what I did :

  • I opened xcode organizer and I had my iphone device with crash logs
  • App and dsym files are in my xcode project which is on my desktop

All the rest should be automatic, right ? but crash logs aren't symbolicated yet ...

Any comments welcome.

Cheers.

Gotye.

like image 493
gotye Avatar asked Apr 23 '10 08:04

gotye


Video Answer


2 Answers

I've been struggling with this for several days and finally figured it out. I wasn't able to get symbolicated logs from any Archived application I installed to my phone. For me, it was a problem with the build settings, although I did notice that it was able to symbolicate logs from some older builds as well after I followed these steps. YMMV may vary with crash logs from older builds. I was able to get symbolicated logs after following these steps in Xcode 4.0.1 on iOS 4.3.1.

In the Xcode Project navigator, click on your project and then click Build Settings. When you archive your application, Xcode uses the Release configuration by default. You'll want to set the following values for the Release configuration only, so you'll have to expand any settings that aren't already expanded to allow you to set it on a per-configuration basis.

Ensure these values are set for the Release configuration:

  • Generate Debug Symbols: Yes
  • Debug Information Format: DWARF with dSYM File
  • Deployment Postprocessing: Yes
  • Strip Linked Product: Yes
  • Use Separate Strip: Yes
  • Strip Debug Symbols During Copy: No
  • Strip Style: All Symbols

Once those are set, Archive and reinstall your application. New crash reports generated from the resulting archive should be symbolicated correctly. For me, many old crash reports also symbolicated correctly after following these steps although I'm not sure how accurate the results would be if the builds were very different.

For reference, I figured all this out after studying this page: http://developer.apple.com/tools/xcode/symbolizingcrashdumps.html

I also found this page, which is handy if you're trying to figure out what a particular build setting does: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

Hope this helps!

Dan

like image 91
Dan Avatar answered Nov 04 '22 07:11

Dan


In order to symbolicate your crash report, try this approach:

(a) Locate the symbolicator (/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash)

(b) Open Terminal and drag this file (so that the path gets copied correctly)

(c) Run a command like /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatorcrash .crash .app (mention the whole path of the crash report and the app file)

(d) Symbolicated crash report will show up

like image 33
Vaishnavi Naidu Avatar answered Nov 04 '22 08:11

Vaishnavi Naidu