Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Missing iOS symbols at “~/Library/Developer/Xcode/iOS DeviceSupport”

On Xcode 5 I am unable to symbolicate crash report. I am facing problem when we received a crash report generated on device combination (iPad model + iOS version) that never attached to my development Mac. Root cause is I don’t have all iOS build symbols for all iPads at “/Library/Developer/Xcode/iOS DeviceSupport”.

App was’t build on my machine, but I have .xcarchive in my Xcode. I can see symbolication of crash address related to my app only. Not for rest of apple framework’s addresses.

If you go to path “~/Library/Developer/Xcode/iOS DeviceSupport” on your Mac you can see folders with name like “7.0.2 (11A501)”, “7.0 (11A4449d)”, 6.1.3 (10B329)… which contains binaries from actual device (compiled for arm). When we connect any development iOS device to Mac, Xcode will copy those symbols from actual device to Mac (Only first time, or whenever iOS version get updated on development device). These are required to symbolicated crash symbols other than my app address. e.g. CoreFoundation 0x2ff85c27 0x2ff7e000 + 31783 (crash log does not symbolicate system libraries addresses)

In short if you received crash on xyz iOS version, that version's device's build directory should be at path "~/Library/Developer/Xcode/iOS DeviceSupport”. Or you should connect that version's iPad to your Mac so that Xcode can collect all data from device that needed for symbolication.

Suppose if you received a crash from device running 6.0 (10A403) iOS build, you should have "6.0 (10A403)" directory containing all data at "~/Library/Developer/Xcode/iOS DeviceSupport" to see full symbolication in Xcode of all address.

From where I can get this symbols e.g I want Xcode symbols for “iPhone OS 7.0.4 (11B554a), Hardware Model: iPad3,1”. Or how I can solve this problem.

like image 911
atrane Avatar asked Oct 20 '22 18:10

atrane


1 Answers

There are only two ways to solve this:

  1. You either need a device which is running the same iOS version and having a CPU with the same CPU architecture the crash report was happening on, and then plug into your computer so Xcode can import the symbols
  2. Or you need to get the symbols from another developer.

Usually the symbols are part of the latest Xcode release, but Apple doesn't always provide Xcode updates when an iOS version only contains bug-fixes but no API changes.

like image 165
Kerni Avatar answered Oct 23 '22 11:10

Kerni