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'ssymbolicatecrash
tool to symbolicate your crash report. This tool will search system symbols in theiOS 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
to10.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 like10.2 (14C92)/Symbols/System/Library/Caches/com.apple.dyld
. There should be file nameddyld_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.