请注意:我要求的是一个我可以下载符号的地方,或者是一个确凿的答案,这样的网站是苹果禁止的。“重复的”问题与我在问题中链接的问题类似:唯一建议的答案是访问物理设备或找到其他拥有物理设备的开发人员。
我符号化了一个崩溃转储,但只有我的应用程序代码中的行被符号化;系统代码没有。它看起来像这样:
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
我从this问题中了解到,这是因为崩溃来自iOS 6.1.4设备,而我的~/Library/Developer/Xcode/iOS DeviceSupport文件夹中没有iOS 6.1.4的符号。
不幸的是,iOS 6.1.4是一个仅针对iPhone 5的版本,而且我无法物理访问可以更新到6.1.4的iPhone 5,因此无法从设备上获取符号。有没有什么地方我可以下载不同iOS版本的符号(没有运行这些版本的设备),或者这些被认为是苹果的机密?
发布于 2016-12-19 19:20:54
我已经从真实设备(从二手移动市场)、iOS防火墙和Xcode的iOS SDK中收集了大部分系统符号。
您可以在此处下载所需的版本:
iOS system symbol file(7.0-9.2)
iOS system symbol file(9.2.1-10.2)
阅读iOS-System-Symbols获取更多details.If我得到了新的符号文件,我会将其添加到谷歌驱动器共享folder.You可以遵循来自github存储库的最新更新。
如何使用
当您需要对崩溃报告进行符号化时,请检查Code Type
OS Version
部分。例如:
Code Type: ARM-64
OS Version: iOS 10.2 (14C82)
这意味着你需要10.2 (14C82)
系统的arm64
版本符号。
~/Library/Developer/Xcode/iOS DeviceSupport
。(检查文件的名称和路径,它应该be~/Library/Developer/Xcode/iOS DeviceSupport/10.2 (14C82)/Symbols
).symbolicatecrash
工具,以符号您的崩溃报告。此工具将在iOS DeviceSupport
path automatically.中搜索系统符号
符号列表
从7.0 (11A465)
到10.2 (14C92)
有50个版本。(如果你把操作系统版本和CPU架构一起算,就是85个。我有76个)。
这是从7.0
到10.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 |
缺少符号
我仍然怀念这些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
如何检查符号文件包含的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版本的符号。
发布于 2013-09-30 17:48:15
我只知道漫长而艰难的方法:下载ipsw文件,并使用黑客工具从中提取符号。也许任何人都能找到更容易的方法?
更新:我找到了更简单的解决方案。
我试图符号化iOS 7.0.1符号,但失败了(原因与iOS 6.1.4相同)
下一步将帮助我:
.crash
文件,并将iOS 7.0.1更改为iOS 7.0~/Library/Developer/Xcode/iOS DeviceSupport
忽略一些а,这些步骤对我来说是不成功的结果。
我希望它能对你有所帮助。
发布于 2013-10-15 22:51:30
您应该能够将您所拥有的6.1.omeSDK符号链接到6.1.4,类似于我这里的答案(https://stackoverflow.com/a/19383685/473067)。当然,在这种情况下,符号链接应该是Xcode5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
格式的。
我们通常使用足够接近的SDK版本来符号化崩溃,但我们使用自己的符号化脚本而不是Xcode脚本,并且符号并不总是匹配的,所以YMMV。
https://stackoverflow.com/questions/18500104
复制相似问题