哪里可以获得其他iOS版本的iOS系统符号

Ark*_*ito 23 xcode debug-symbols ios

请注意:我要求提供一个可以下载符号的地方,或者为Apple提供此类网站的确凿答案."重复"问题类似于我在我的问题中链接的问题:唯一建议的答案是访问物理设备或找到另一个拥有一个物理设备的开发人员.

我已经象征了一个故障转储,但只有我的应用程序代码中的行被符号化; 系统代码没有.它看起来像这样:

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
Run Code Online (Sandbox Code Playgroud)

我从这个问题中得知这是因为崩溃来自iOS 6.1.4设备,我的〜/ Library/Developer/Xcode/iOS DeviceSupport文件夹中没有iOS 6.1.4的符号.

不幸的是,iOS 6.1.4是一个仅限iPhone 5的版本,我没有物理访问iPhone 5,我可以更新到6.1.4,因此从设备上取下符号就不行了.是否有任何地方,我可以下载不同版本的IOS符号(不运行这些版本的设备),或在这些视为苹果保密的吗?

zui*_*uik 14

我从真实设备(来自二手移动市场),iOS fireware和Xcode的iOS SDK收集了大部分系统符号.

您可以在此处下载所需的版本:

iOS系统符号文件(7.0-9.2)

iOS系统符号文件(9.2.1-10.2)

阅读iOS-System-Symbols了解更多详情.如果我获得新的符号文件,我会将其添加到google驱动器共享文件夹中.您可以按照上面github存储库的最新更新.

如何使用

  1. 当您需要表示崩溃报告时,请检查Code TypeOS Version部分.如:

Code Type: ARM-64

OS Version: iOS 10.2 (14C82)

这意味着您需要系统的arm64版本符号10.2 (14C82).

  1. 在我的共享文件夹中找到包并将其解压缩到~/Library/Developer/Xcode/iOS DeviceSupport.(检查文件的名称和路径,应该是~/Library/Developer/Xcode/iOS DeviceSupport/10.2 (14C82)/Symbols).

  2. 使用Xcode的symbolicatecrash工具来表示崩溃报告.此工具将iOS DeviceSupport自动搜索路径中的系统符号.

符号列表

有50个版本7.0 (11A465)10.2 (14C92).(如果算上与CPU架构的操作系统版本,它是85.我已经得到了他们的76).

下面是从符号列表7.010.2,用自己的CPU架构的版本我已经得到了.

|    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  |
Run Code Online (Sandbox Code Playgroud)

缺少符号

我仍然想念这些CPU的符号,如果您有任何符号,请分享:

| 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  
Run Code Online (Sandbox Code Playgroud)

如何检查符号文件包含的CPU版本

如果您已有系统符号文件,并且想知道它包含哪个CPU版本,请检查路径中的文件10.2 (14C92)/Symbols/System/Library/Caches/com.apple.dyld.应该有命名的文件dyld_shared_cache_arm64,dyld_shared_cache_armv7s,dyld_shared_cache_armv7.

如果你错过了一个,那就意味着你没有那个CPU版本的符号.


Max*_*kin 6

我只知道很长时间:下载ipsw文件并使用黑客工具从中提取符号.也许任何人都可以找到更方便

upd:我发现解决方案更简单.

我试图象征iOS 7.0.1符号,但不成功(与iOS 6.1.4相同的原因)

后续步骤可以帮助我:

  1. 我编辑了.crash文件并将iOS 7.0.1更改为iOS 7.0
  2. 备份和删除所有内容 ~/Library/Developer/Xcode/iOS DeviceSupport
  3. 从Xcode5运行symbolicatecrash(包含iOS 7符号)

忽略一些这些步骤对我来说是不成功的结果.

我希望它对你有所帮助.