Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Symbolicate crash in iOS8 with Xcode 6 .1

Tags:

ios

iphone

xcode6

I used to symbolicate the crash report in Xcode 5.1.1 directly as there was "Symbolicate & Re-symbolicate" in Devices section of Organiser. But after upgrading to Xcode 6.1, I could find neither symbolicate nor resymbolicate option to view the crash Log. I'm confused. How to do it?

Previously I used to sync the device with iTunes and view the Crashes from ~/Library/Logs/CrashReporter/MobileDevice. Clicking on any crash would open up with Devices(Xcode) and then symbolicate. But now, it opens up with Console and no option to symbolicate. Does Xcode 6.1 have any such option?

like image 670
Honey Avatar asked Sep 24 '14 06:09

Honey


2 Answers

Steps to symbolicate crash log manually in Xcode 6

  1. If you archived the release build before release, then go to STEP 2. Otherwise archive your final release build (without any code change).

  2. To locate your archive file, open organizer -> choose your project -> choose the latest archive file -> right click over it -> choose 'show in finder'

  3. Right click on '*.xcarchive' file and select 'show package content' option then go to Products folder -> Applications Folder ->YourAppName.app (.app extension is hidden in some machine)

  4. Copy and paste your .app file in different location. Put the crash log file also in the same folder. Open terminal app and go to the folder which you pasted, through 'cd' command

  5. And type the following command in terminal with your crash address

xcrun atos -o YourAppName.app/YourAppName -arch armv7 -l 0xbd000 0x0013f745

Note: If the above command doesn't work, then change "armv7 to armv7s" and check.

Eg: Crash log look like this, you need to get crash address and put it in the above command

3   CoreGraphics                    0x266814d3 CGPathAddLineToPoint + 171
4   YourAppName                     0x00140a8b 0xbd000 + 539275
5   YourAppName                     0x0013f745 0xbd000 + 534341
6   Foundation                      0x27152d6b __NSThreadPerformPerform + 383
7   CoreFoundation                  0x2640a375 
like image 184
Dax Avatar answered Sep 21 '22 06:09

Dax


A plugin is available for Xcode under the Product menu. This plugin is available through Alcatraz package manager or can be directly downloaded from github.

This plugin internally incorporates a shell script that does the set up of running the following commands for manual crash symbolication.

  1. Set an alias to symbolicatecrash.pl perl script

alias symbolicatecrash='/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash'

  1. To find symbolicatecrash, should it differ from the alias above:

find /Applications/Xcode.app -name symbolicatecrash -type f

  1. Set the DEVELOPER_DIR variable:

export DEVELOPER_DIR='/Applications/Xcode.app/Contents/Developer'

  1. With the dSYM the crash can be symbolicates as:

symbolicatecrash /path/to/MyApp_2012-10-01_Device.crash /path/to/MyApp.app.dSYM.

like image 27
MaheshShanbhag Avatar answered Sep 23 '22 06:09

MaheshShanbhag