Where to get iOS system symbols for other iOS versions

主宰稳场 提交于 2019-12-04 09:59:00

问题


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?


回答1:


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.




回答2:


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.




回答3:


You should be able to symlink the 6.1.something SDK that you have to 6.1.4, similar to my answer here (https://stackoverflow.com/a/19383685/473067). In this case, of course, the symlink should be in Xcode5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs.

We routinely symbolicate crashes using SDK versions that are close enough, but we use our own symbolification script instead of the Xcode one, and the symbols don't always match, so YMMV.



来源:https://stackoverflow.com/questions/18500104/where-to-get-ios-system-symbols-for-other-ios-versions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!