3

Installed software images:

Installed software images

My crash log:

enter image description here

As you can see, only the app (IPDF Beta) shows any intelligible method names and everything else is gook. The reason is obviously that I don't have the 5.1 software image installed, and I have no clue where to get my hands on it. Xcode doesn't have any download features (I already tried grabbing the 5.1 simulator download, but that apparently doesn't include the device image).

Should Xcode be able to symbolicate despite not having the software image for the crashy version? If so, any pointers on how to make this happen? If not, what's the proper way to get my hands on the image aside from absurd suggestions like finding old Xcode versions etc?

2 Answers 2

2

To symbolicate the crash reports you will need the actual symbols. And having the images of the iOS versions do not help. You need to install them on an actual device and then Xcode will be able to grab the symbols from the device. But if you don't have a device with even older iOS versions you can't install them.

So the only chance left is to download old Xcode versions which do have to symbols bundled as it is mentioned by Ryan Poolos in his answer: https://stackoverflow.com/a/14941919/474794

Once downloaded, extract Xcode into a temporary folder, go into the folder Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/ and copy the subdirectories into ~/Library/Developer/Xcode/iOS DeviceSupport/.

If the folder is a symbolic link into another SDK folder inside the Xcode directory structure, it's better to copy the actual content from there into the new destination. Make sure to keep the directory structure identical in the target directory, because the symbolication process relies on it.

So the target structure below ~/Library/Developer/Xcode/iOS DeviceSupport/ will be something like 5.1 (9B176)/Symbols/ and then three subdirectories Developer, System and usr with more content down for each iOS version.

Note: Since iOS 5.0 there can be multiple builds for each iOS version. One for armv7 and another for armv7s.

Sign up to request clarification or add additional context in comments.

5 Comments

Aha! Thanks, I did in fact grab the 2 GB Xcode package earlier. Will try this out today or tomorrow.
I would love to prove you wrong on this one, but after some fumbling around (you can't copy the "5.1 (9B176)" folder as is, because its Symbols folder is a symlink to ../../iPhoneOS-SDK, so you have to manually copy that in as Symbols) this did the trick. Apple, seriously... -_-
That's what I tried to explain in the last two paragraphs, that sometimes the folder is a symlink and you have to copy the content from that and keep the structure.
@Kerni There are so many cases where this doesn't work at all. For example - I have "6.1.2 (10B146)" on my device. I have the corresponding symbols in my ~/Library/Developer/Xcode/iOS DeviceSupport directory. But I just received a crash report from a customer that has iOS "6.1.2 (10B147)". How do I get the symbols for that version? No version of Xcode has those symbols.
@maddy: The only other way is to have a device that has this iOS version installed, so Xcode can grab the symbols from the device. Also note, that armv7 and armv7s symbols are different, so you need devices for both CPU architectures to get all the symbols.
1

Old iOS versions can be downloaded from Apple. But they are embedded with old versions of Xcode. So you'll need to download Xcode and then pull out the SDK image.

Apple Downloads: https://developer.apple.com/downloads/index.action?name=Xcode

You can get the image here /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs according to this SO question: https://stackoverflow.com/a/12602603/563381

5 Comments

This isn't what the question is asking about. This question is about getting the needed symbol files so symbolicatecrash can properly symbolicate a crash report generated with a version of iOS that the developer doesn't have.
He's doesn't mention using symbolicatecrash though. He suggests hes using Xcode to symbolicate his crashes. And if he were to download an image for the version Xcode could symbolicate. Perhaps there are other ways to get the symbols but this would be the easiest.
Yeah, there has got to be better ways to get the software image than juggling Xcode versions around. I do want to symbolicate the crash log and that's definitely what I'm asking about -- I am dropping it into device logs and Xcode does it for me -- if it's the right software version, that is.
Well this is the only way I know. If someone else comes along with a way to get JUST symbols I'll be very interested. symbolicatecrash is a command line utility to symbolicate without using Xcode.
I got what I wanted (see other answer), but it doesn't do anything. I guess that is to be expected -- if it did something, Apple'd make it more available, right? -_-

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.