Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where to get iOS system symbols for other iOS versions

Tags:

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?

like image 275
Arkaaito Avatar asked Aug 28 '13 23:08

Arkaaito


People also ask

What is SF Symbols in IOS?

With over 4,000 symbols, SF Symbols is a library of iconography designed to integrate seamlessly with San Francisco, the system font for Apple platforms. Symbols come in nine weights and three scales, and automatically align with text labels.

How do you find SF Symbols?

How can I browse the available symbols? Apple provides an SF Symbols app that allows you to browse, copy, and export any available symbols. The app can be downloaded here and is available for macOS 10.14 and later. The SF Symbols Mac app with an overview of all the symbols.


2 Answers

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

  1. 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 arm64version symbols of 10.2 (14C82)system.

  1. 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).

  2. Use Xcode'ssymbolicatecrash tool to symbolicate your crash report. This tool will search system symbols in theiOS DeviceSupportpath 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.0to10.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.

like image 160
zuik Avatar answered Sep 29 '22 12:09

zuik


I know only long hard way: download ipsw file and extract symbols from it with hackers tools. Maybe anyone can find way easier?

upd: I have found solution simpler.

I tried to symbolify iOS 7.0.1 symbols, but unsucessfull (same reason as you have with iOS 6.1.4)

Next steps help me:

  1. I edited .crash file and change iOS 7.0.1 to iOS 7.0
  2. backup and delete everything from ~/Library/Developer/Xcode/iOS DeviceSupport
  3. run symbolicatecrash from Xcode5 (which contains iOS 7 symbols)

Ignoring some а these steps do unsuccesfull results for me.

I hope it helps you.

like image 29
Maxim Kholyavkin Avatar answered Sep 29 '22 12:09

Maxim Kholyavkin