Où trouver les symboles du système iOS pour les autres versions de iOS

s'il vous Plaît note: je demande un endroit où je peux télécharger les symboles, ou pour une réponse concluante que ce site est interdite par Apple. La question "dupliquer" est similaire à celle que j'ai liée dans ma question: la seule réponse suggérée est d'accéder à un périphérique physique ou de trouver un autre développeur qui en possède un.

j'ai symbolisé un crashdump, mais seules les lignes de mon code d'application sont symbolisées; le code système ne l'est pas. Il ça ressemble à ça:

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

je comprends de cette question que c'est parce que le crash est venu d'un appareil iOS 6.1.4, et je n'ai pas de symboles pour iOS 6.1.4 dans mon dossier ~/Library/Developer/Xcode/iOS DeviceSupport.

malheureusement, iOS 6.1.4 est un iPhone 5-seule version, et je n'ai pas d'accès physique à un iPhone 5 que je peux mettre à jour à 6.1.4, donc obtenir les symboles de l'appareil est out. Être il anyplace je pourrais télécharger les symboles pour différentes versions d'iOS (sans les appareils qui exécutent ces versions), ou sont-ils considérés comme confidentiels Apple?

20
demandé sur Community 2013-08-29 03:46:38

3 réponses

j'ai rassemblé la plupart des symboles de système des appareils réels (du marché moblie de seconde main), iOS firewares et les SDK iOS de Xcode.

vous pouvez télécharger la version dont vous avez besoin ici:

fichier de symboles du système iOS(7.0-9.2)

fichier de symboles du système iOS(9.2.1-10.2)

Lire iOS-Système de Symboles pour plus de détails.Si Je obtenez un nouveau fichier de symboles, je vais l'ajouter dans le dossier de partage de Google drive.Vous pouvez suivre la dernière mise à jour du dépôt github ci-dessus.

comment utiliser

  1. si vous devez symboliser un rapport d'accident, consultez les sections Code Type et OS Version . Tels que:

Code Type: ARM-64

OS Version: iOS 10.2 (14C82)

cela signifie que vous avez besoin de la version arm64 symboles du système 10.2 (14C82) .

  1. trouver le paquet dans mon dossier de partage et l'extraire à ~/Library/Developer/Xcode/iOS DeviceSupport . (Vérifier le nom et le chemin du fichier, il devrait être ~/Library/Developer/Xcode/iOS DeviceSupport/10.2 (14C82)/Symbols ).

  2. utilisez l'outil symbolicatecrash de Xcode pour symboliser votre rapport d'accident. Cet outil recherche automatiquement les symboles du système dans le chemin iOS DeviceSupport .

liste des symboles

il y a 50 versions de 7.0 (11A465) à 10.2 (14C92) .(si vous comptez la version OS avec l'architecture CPU, c'est 85. J'ai 76).

Voici la liste des symboles de 7.0 à 10.2 , avec leur version d'architecture CPU que j'ai.

|    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  |

symboles manquants

ces symboles CPU me manquent encore, si vous en avez, partagez :

| 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  

Comment vérifier quelle version du CPU le fichier de symboles contient

si vous avez déjà un fichier de symbole système, et que vous voulez savoir quelle version CPU il contient, vérifiez les fichiers dans le chemin comme 10.2 (14C92)/Symbols/System/Library/Caches/com.apple.dyld . Il devrait y avoir un fichier nommé dyld_shared_cache_arm64 , dyld_shared_cache_armv7s , dyld_shared_cache_armv7 .

si vous en manquez un, cela signifie que vous n'avez pas les symboles de cette version CPU.

10
répondu zuik 2017-01-03 09:27:48

Je ne sais que très difficilement: télécharger le fichier ipsw et en extraire les symboles avec des outils de hackers. Peut-être que quelqu'un peut trouver plus facile?

upd: j'ai trouvé la solution plus simple .

j'ai essayé de symboliser les symboles iOS 7.0.1, mais sans succès (même raison que vous avez avec iOS 6.1.4)

les Prochaines étapes de m'aider:

  1. j'ai modifié le fichier .crash fichier et changer iOS 7.0.1 pour iOS 7.0
  2. sauvegarder et supprimer tout de ~/Library/Developer/Xcode/iOS DeviceSupport
  3. exécuter symbolicatecrash de Xcode5 (qui contient de l'iOS 7 symboles)

Ignorer certains а ces étapes ne unsuccesfull résultats pour moi.

j'espère que ça vous aidera.

6
répondu Speakus 2013-10-01 03:14:52

vous devriez pouvoir faire un lien symbolique avec le 6.1.quelque chose de SDK que vous avez à 6.1.4, similaire à ma réponse ici ( https://stackoverflow.com/a/19383685/473067 ). Dans ce cas, bien sûr, le lien doit être dans Xcode5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs .

nous symbolisons régulièrement les accidents en utilisant des versions SDK qui sont assez proches, mais nous utilisons notre propre script de symbolisation au lieu du Xcode one, et les symboles ne correspondent pas toujours, donc YMMV.

1
répondu Steven Kramer 2017-05-23 10:31:07