Symbolicate crash in iOS8 with Xcode 6 .1

2019-01-16 17:16发布

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?

4条回答
甜甜的少女心
2楼-- · 2019-01-16 17:43

Simply connect an iOS device, open Devices > The Device > View Device Logs, then drag and drop the crash to the list of crash files for the that device. The crash will be added to the list and will be symbolicated as long as the original archive exist.

查看更多
看我几分像从前
3楼-- · 2019-01-16 17:50

Connect the iOS device, open Devices (shift command 2), select the device and click 'View Device Logs'. On the left side bar, the crash logs will appear. Select the one you're interested in.

As long as you have archived the build that was running on the device at the time of the crash, the crash log will be symbolicated automatically after a few seconds. If not, right click the crash log and select 're-symbolicate log'.

查看更多
贪生不怕死
4楼-- · 2019-01-16 17:53

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 
查看更多
戒情不戒烟
5楼-- · 2019-01-16 17:56

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.

查看更多
登录 后发表回答