Where to get iOS system symbols for other iOS versions

debug-symbols, ios, xcode

Solution

I've collected most of system symbols from real devices (from secondhand moblie market), iOS firewares and Xcode's iOS SDKs.

You can download the version you need here:

iOS system symbol file(7.0-9.2)

iOS system symbol file(9.2.1-10.2)

Read iOS-System-Symbols for more details.If I get new symbol file, i will add it into the google drive sharing folder.You can follow the latest update from the github repository above.

How to use

- When you need to symbolicate a crash report, check the `Code Type` and `OS Version` section. Such as:

`Code Type: ARM-64`

`OS Version: iOS 10.2 (14C82)`

That means you need `arm64`version symbols of `10.2 (14C82)`system.

Find the package in my sharing folder and extract it to `~/Library/Developer/Xcode/iOS DeviceSupport`. (Check the file's name and path, it should be`~/Library/Developer/Xcode/iOS DeviceSupport/10.2 (14C82)/Symbols`).

Use Xcode's`symbolicatecrash` tool to symbolicate your crash report. This tool will search system symbols in the`iOS DeviceSupport`path automatically.

Symbols list

There are 50 versions from `7.0 (11A465)` to `10.2 (14C92)`.(if you count OS version with CPU architecture, it's 85. I've got 76 of them).

Here is the list of symbols from `7.0`to`10.2`, with their CPU architecture version I've got.

|    OS Version     | collected CPU version |
|-------------------|---------------------- |
|   10.2 (14C92)    |   arm64,armv7s        |
|   10.1.1 (14B150) |   arm64,armv7s        |
|   10.1.1 (14B100) |   arm64,armv7s        |
|   10.1 (14B72c)   |   arm64,armv7s        |
|   10.1 (14B72)    |   arm64,armv7s        |
|   10.0.3 (14A551) |   arm64,armv7s        |
|   10.0.2 (14A456) |   arm64,armv7s        |
|   10.0.1 (14A403) |   arm64,armv7s        |
|   10.0(14A346)    |   none                |
|   9.3.5 (13G36)   |   arm64,armv7s,armv7  |
|   9.3.4 (13G35)   |   arm64,armv7s,armv7  |
|   9.3.3 (13G34)   |   arm64,armv7s,armv7  |
|   9.3.2(13F72)    |   none                |
|   9.3.2 (13F69)   |   arm64,armv7s,armv7  |
|   9.3.1 (13E238)  |   arm64,armv7s,armv7  |
|   9.3(13E237)     |   armv7s,armv7        |
|   9.3(13E236)     |   armv7               |
|   9.3(13E234)     |   none                |
|   9.3 (13E233)    |   arm64,armv7s,armv7  |
|   9.2.1 (13D20)   |   arm64,armv7s        |
|   9.2.1 (13D15)   |   arm64,armv7s,armv7  |
|   9.2 (13C75)     |   arm64,armv7s,armv7  |
|   9.1 (13B143)    |   arm64,armv7s,armv7  |
|   9.0.2(13A452)   |   arm64,armv7s,armv7  |
|   9.0.1(13A404)   |   arm64,armv7s,armv7  |
|   9.0 (13A344)    |   arm64,armv7s,armv7  |
|   8.4.1 (12H321)  |   arm64,armv7s,armv7  |
|   8.4 (12H143)    |   arm64,armv7s,armv7  |
|   8.3 (12F70)     |   arm64,armv7s,armv7  |
|   8.3 (12F69)     |   arm64,armv7s,armv7  |
|   8.2 (12D508)    |   arm64,armv7s,armv7  |
|   8.1.3 (12B466)  |   arm64,armv7s,armv7  |
|   8.1.2 (12B440)  |   arm64,armv7s,armv7  |
|   8.1.1 (12B436)  |   arm64,armv7s        |
|   8.1.1 (12B435)  |   armv7s,armv7        |
|   8.1 (12B411)    |   arm64,armv7s,armv7  |
|   8.1 (12B410)    |   arm64,armv7s,armv7  |
|   8.0.2 (12A405)  |   arm64,armv7s,armv7  |
|   8.0.1(12A402)   |   armv7s,armv7        |
|   8.0 (12A366)    |   arm64,armv7s        |
|   8.0 (12A365)    |   arm64,armv7s,armv7  |
|   7.1.2 (11D257)  |   armv7s,armv7        |
|   7.1.1 (11D201)  |   arm64,armv7s,armv7  |
|   7.1 (11D167)    |   arm64,armv7s,armv7  |
|   7.0.6 (11B651)  |   arm64,armv7s,armv7  |
|   7.0.4 (11B554a) |   arm64,armv7s,armv7  |
|   7.0.3 (11B511)  |   arm64,armv7s,armv7  |
|   7.0.2(11A501)   |   armv7s,armv7        |
|   7.0.1(11A470a)  |   armv7s              |
|   7.0(11A465)     |   arm64,armv7s,armv7  |

Missing symbols

I still miss these CPU's symbols, if you have any of them, please share:

| missed OS Version |   missed CPU Version  |   description
|-------------------|-----------------------|-----------------
|  10.0(14A346)     |  arm64                |  iPhone 7 and 7 Plus-only, default OS when leave factory 
|  9.3.2(13F72)     |  arm64                |  iPad Pro 9.7-inch-only, fix bricked problem
|  9.3(13E237)      |  arm64                |  5s, iPad Air and iPad mini2 only, fix activation problem
|  9.3(13E234)      |  arm64                |  6s, 6s Plus and iPad Pro 9.7-inch only
|  8.1.1 (12B435)   |  arm64                |  5s, iPad Air and iPad mini2 only
|  8.0.1(12A402)    |  arm64                |  `8.0.1`was pulled soon after released.Because it has serious bugs 
|  7.1.2 (11D257)   |  arm64                |    
|  7.0.2(11A501)    |  arm64                |  
|  7.0.1(11A470a)   |  arm64                |  5s only  

How to check which CPU version the symbol file contains

If you already have a system symbol file, and want to know which CPU version it contains, check files in the path like`10.2 (14C92)/Symbols/System/Library/Caches/com.apple.dyld`. There should be file named`dyld_shared_cache_arm64`,`dyld_shared_cache_armv7s`,`dyld_shared_cache_armv7`.

If you miss one, that means you don't have that CPU version's symbols.

Problem

Please note: I am asking for a place I can download the symbols, or for a conclusive answer that such a site is prohibited by Apple. The "duplicate" question is similar to the one I linked in my question: the only suggested answer is to get access to a physical device or to find another developer who has one. I've symbolicated a crashdump, but only the lines in my application code get symbolicated; system code does not. It looks something like this: ``` Thread 0 Crashed: 0 libobjc.A.dylib 0x39c195d0 0x39c16000 + 13776 1 QuartzCore 0x33aefcad 0x33ade000 + 72877 2 QuartzCore 0x33af3105 0x33ade000 + 86277 <snip> 13 UIKit 0x33d862b9 0x33d2f000 + 357049 14 MyApp 0x0005ef87 main (main.m:14) ... Thread 7: 0 libsystem_kernel.dylib 0x3a101e30 0x3a101000 + 3632 1 CoreFoundation 0x31ef82bb 0x31e61000 + 619195 2 CoreFoundation 0x31ef7031 0x31e61000 + 614449 3 CoreFoundation 0x31e6a23d 0x31e61000 + 37437 4 CoreFoundation 0x31ec8c4b 0x31e61000 + 425035 5 MyApp 0x0016f293 +[UA_ASIHTTPRequest runRequests] (UA_ASIHTTPRequest.m:4795) 6 Foundation 0x3283b231 0x3278a000 + 725553 7 libsystem_c.dylib 0x3a06b0e1 0x3a05a000 + 69857 ``` I gather from this question that this is because the crash came in from an iOS 6.1.4 device, and I do not have symbols for iOS 6.1.4 in my ~/Library/Developer/Xcode/iOS DeviceSupport folder. Unfortunately, iOS 6.1.4 is an iPhone 5-only release, and I don't have physical access to an iPhone 5 which I can update to 6.1.4, so getting the symbols off the device is out. Is there anyplace I could download the symbols for different iOS versions (without the devices that run those versions), or are these considered Apple confidential?

Original source

Related problems