Xcode 7.2 does not symbolicate crash report.

Hi Experts,


According to the guide "Analyzing Crash Reports", Xcode automatically symbolicates crash reports. It should be, but I cannot make it work.

In Xcode's Organizer, I selected my game, clicked Crashes and selected the crash from the list.

I see something like this:

Thread 0:

0 Rally-mobile 0x91000

1 Rally-mobile 0x91000

2 Rally-mobile 0x91000

...

28 UIKit UIApplicationMain


In the same time, everything works when I copy all required files (.app, .dSYM, .crash) from Archives into one folder and run "symbolicatecrash" in the Terminal.

I see :

0 Rally-mobile 0x00522836 cocos2d::SpriteFrame::getTexture() + 42

1 Rally-mobile 0x0051bf24 cocos2d::Sprite::initWithSpriteFrame(cocos2d::SpriteFrame*) + 20

....

28 UIKit 0x270b00b8 UIApplicationMain + 144 (UIApplication.m:3772)



What I do wrong? Why Xcode does not load dSYM?

I also would like to open .crash in my project and see the crash with source files. It is possible?



My env: Xcode 7.2. OS 10.10.5


Regards,

Valery.

Replies

There are two common causes for this:

  • a UUID mismatch between the crash report and the

    .dSYM
  • Spotlight failing to index your

    .dSYM
    (Xcode uses Spotlight to find the
    .dSYM
    based on its UUID)

You can check the former using

xcrun dwarfdump --uuid /path/to/your.dSYM
.

You can check the latter using

mdls
and
mdfind
. If the
.dSYM
has been indexed then
mdls
will show the
com_apple_xcode_dsym_uuids
attribute:
$ mdls build/Debug-iphoneos/QTestbed.app.dSYM/
…
com_apple_xcode_dsym_uuids    = (
    "F3D98D35-B43B-3A29-BDF0-8186AF886EDB",
    "94BF1D20-2A89-3E96-81BC-C46330D6932F"
)
…

You can then run a UUID through

mdfind
to confirm that Spotlight has the right info. For example:
$ mdfind 'com_apple_xcode_dsym_uuids == "F3D98D35-B43B-3A29-BDF0-8186AF886EDB"'
/Users/quinn/DTS Work iOS/Samples and Tests/QTestbed-GIT/build/Debug-iphoneos/QTestbed.app.dSYM

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"