Si le dSYM n'est pas téléchargé sur New Relic, les rapports de crash mobiles ne peuvent pas être symbolisés. Vous pouvez télécharger les dSYM manuellement ou directement via l'interface utilisateur de New Relic. Cependant, chaque build d'une application créera un nouveau dSYM, et il peut être difficile de gérer quel dSYM est attribué à quelle build d'application.
Dans cette situation, vous pouvez utiliser l'identifiant Build UUID pour :
- Identifier une version unique d’une application.
- Trouvez quel dSYM peut être utilisé pour symboliser un crash.
Afficher l'UUID de build
Une application peut avoir plusieurs UUID de build, un attribut pour chaque architecture CPU sur laquelle l'application est construite. L'UUID de build est également stocké dans le dSYM associé et peut être extrait pour identifier le dSYM.
Les rapports de plantage de New Relic contiennent également l'UUID de build de l'application en panne. Pour afficher l'UUID de build :
- Aller à one.newrelic.com > All capabilities > Mobile. Recherchez ensuite votre application et cliquez sur Crashes > Crash Analysis.
- Dans la tableCrash list , sélectionnez n’importe quelle ligne.
- À partir de la pageCrash Details du rapport de crash sélectionné, recherchez le
App Image Uuid
dans la liste des attributs.
Si le App Image Uuid
ne figure pas dans la liste des attributs du rapport de crash sélectionné :
- Exporter les détails du crash.
- Recherchez l'UUID de build dans la sectionBinary images du rapport de plantage exporté.
Utilisez l'UUID de build extrait des détails du crash pour trouver le dSYM manquant.
Exemple d'images binaires
Voici un exemple de la section Binary images d'un rapport de crash exporté. Cette section répertorie l'UUID de build pour chaque bibliothèque liée dynamiquement incluse dans l'application, ainsi que l'UUID de build pour l'application principale.
Dans cet exemple, l’application principale est New Relic
. Son UUID de build est 117667e7b8d230cb8a908906c64e0227
. Il s'agit de l'identifiant que vous pouvez utiliser pour trouver le dSYM associé.
Binary Images:0xb1000 - 0x30d000 New Relic armv7 <117667e7b8d230cb8a908906c64e0227> /var/containers/Bundle/Application/New Relic.app/New Relic0x22290000 - 0x22292000 libSystem.B.dylib armv7 <39d6d6f7c2ac3de8bb29c40a1b66368a> /usr/lib/libSystem.B.dylib0x22292000 - 0x222de000 libc++.1.dylib armv7 <017dba6c16b63f9ebecb9ddd0d0a4520> /usr/lib/libc++.1.dylib0x222de000 - 0x222f9000 libc++abi.dylib armv7 <d32373f6c2153a509f6603750d213ffb> /usr/lib/libc++abi.dylib0x222fc000 - 0x22667000 libobjc.A.dylib armv7 <94f6d325c1843f45b3a439b86fc9de15> /usr/lib/libobjc.A.dylib0x22667000 - 0x2266c000 libcache.dylib armv7 <8009f99fb892331dbcb61cd740ff0f43> /usr/lib/system/libcache.dylib0x2266c000 - 0x22676000 libcommonCrypto.dylib armv7 <f6db318471d732d39918ef36bde65cb7> /usr/lib/system/libcommonCrypto.dylib0x22676000 - 0x2267c000 libcompiler_rt.dylib armv7 <cfa3ca12d6c2383abcaf3c8541e9b86c> /usr/lib/system/libcompiler_rt.dylib0x2267c000 - 0x22683000 libcopyfile.dylib armv7 <d2b06020c3693c7b9d179434f8115ba0> /usr/lib/system/libcopyfile.dylib0x22683000 - 0x226d3000 libcorecrypto.dylib armv7 <181437f8d9e53277ace439de8b3fd1ad> /usr/lib/system/libcorecrypto.dylib0x226d3000 - 0x2271d000 libdispatch.dylib armv7 <bbb4bba2176039ab95a59d7a56f6eff8> /usr/lib/system/libdispatch.dylib
Trouver et resymboliser le dSYM
Pour trouver l'UUID de build d'un dSYM : utilisez dwarfdump
avec la commande de terminal suivante :
$dwarfdump --uuid PATH_TO_dSYM
Dans l'exemple suivant, le dSYM New Relic renvoie deux UUID de build, un pour ARMv7
et ARM64
. L'UUID de build ARMv7
correspond à l'UUID de build de l' exemple de crash manquant :
$dwarfdump --uuid ./New\ Relic.app.dSYM/Contents/Resources/DWARF/New\ RelicUUID: 117667E7-B8D2-30CB-8A90-8906C64E0227 (armv7) ./New Relic.app.dSYM/Contents/Resources/DWARF/New RelicUUID: B1A8C6EE-02B9-3C55-AEE7-308521873107 (arm64) ./New Relic.app.dSYM/Contents/Resources/DWARF/New Relic
Pour symboliser les crashs non symbolisés, suivez les instructions pour télécharger manuellement le dSYM.