Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Visual Studio App Center a été mis hors service le 31 mars 2025, à l’exception des fonctionnalités d’analyse et de diagnostic, qui continueront d’être prises en charge jusqu’au 30 juin 2026. En savoir plus.
Les rapports d’incident macOS, tvOS et iOS affichent les traces de pile pour tous les threads en cours d’exécution de votre application au moment où un incident s’est produit. Les traces de pile contiennent uniquement des adresses mémoire ; pas de noms de classes, de méthodes, de noms de fichiers ou de numéros de ligne nécessaires pour comprendre les crashs.
Pour obtenir les adresses mémoire traduites, vous devez charger un package dSYM dans App Center, qui contient toutes les informations requises pour la symbolique. Vous pouvez en savoir plus sur la symbolique de la documentation officielle d’Apple pour les développeurs.
Le service de génération et de distribution App Center peut générer automatiquement un fichier dSYM valide et un fichier de mappage source .zip
, puis les charger dans le service de diagnostics. Si vous utilisez App Center pour générer et distribuer automatiquement votre application à vos utilisateurs finaux, vous n’avez pas besoin d’obtenir et de charger manuellement les fichiers de symboles.
Plantages non symboliqués
Les blocages nonmbolicés s’affichent dans la section Diagnostics App Center afin de pouvoir afficher certains détails avant de charger des symboles. Les symboles manquants de ces incidents s'affichent sous l'onglet « non symboliqués ». Si les symboles manquants sont chargés, le groupe d'incidents non symboliqués est remplacé par un groupe d'incidents symboliques.
Recherche de l’offre .dSYM
groupée
- Dans Xcode, ouvrez le menu Fenêtre , puis sélectionnez Organisateur.
- Sélectionnez l’onglet Archives .
- Sélectionnez votre application dans la barre latérale gauche.
- Cliquez avec le bouton droit sur la dernière archive et sélectionnez Afficher dans Le Finder.
- Cliquez avec le bouton droit sur le fichier dans Finder, puis sélectionnez Afficher le
.xcarchive
contenu du package. - Vous devez voir un dossier nommé
dSYMs
qui contient votre bundle dSYM. - Créez un fichier zip de l’offre groupée dSYM.
Si vous utilisez Visual Studio au lieu de Xcode, consultez Où puis-je trouver le fichier dSYM pour symboliqueiser les journaux d’incident iOS ? pour rechercher le fichier dSYM.
Chargement de symboles
Portail App Center
- Connectez-vous à App Center et sélectionnez votre application.
- Dans le menu de gauche, accédez à la section Diagnostics et sélectionnez Symboles.
- Dans le coin supérieur droit, cliquez sur Charger des symboles et chargez le fichier.
- Une fois les symboles indexés par App Center, les incidents seront symboliques pour vous.
Applications iOS React Native
Pour obtenir des fichiers de symboles pour les fichiers iOS React Native, créez un fichier ZIP avec le package dSYM sur votre Mac et la carte source JavaScript de votre application. Le mappage source doit être nommé index.ios.map
. Les commandes ci-dessous génèrent le mappage source pour les builds de mise en production :
react-native bundle --entry-file index.ios.js --platform ios --dev false --reset-cache --bundle-output unused.jsbundle --sourcemap-output index.ios.map
App Center API
Le processus de chargement de symboles via l’API implique une série de trois appels d’API : un pour allouer de l’espace sur notre serveur principal, un pour charger le fichier et un pour mettre à jour l’état du chargement. Le corps du premier appel d’API doit être défini symbol_type
sur Apple
.
- Déclenchez une
POST
requête à l’API symbol_uploads. Cet appel alloue de l'espace sur notre backend pour votre fichier et retourne une propriétésymbol_upload_id
et une propriétéupload_url
.
curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{JSON BODY}'
- À l’aide de la
upload_url
propriété retournée à partir de la première étape, effectuez unePUT
demande avec l’en-tête :"x-ms-blob-type: BlockBlob"
et fournissez l’emplacement de votre fichier sur le disque. Cet appel charge le fichier dans nos comptes de stockage back-end. En savoir plus sur les en-têtes de demande d’objet blob PUT.
curl -X PUT '{upload_url}' \
-H 'x-ms-blob-type: BlockBlob' \
--upload-file '{path to file}'
- Effectuez une
PATCH
demande à l’API symbol_uploads à l’aide de lasymbol_upload_id
propriété retournée à partir de la première étape. Dans le corps de la demande, spécifiez si vous souhaitez définir l’état du chargementcommitted
sur (terminé avec succès) le processus de chargement ouaborted
(non terminé).
curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{ "status": "committed" }'
Remarque
L’API de chargement de symboles ne fonctionne pas pour les fichiers dont la taille est supérieure à 256 Mo. Utilisez l’interface CLI App Center pour charger ces fichiers. Vous pouvez installer l’interface CLI App Center en suivant les instructions de notre référentiel CLI App Center.
App Center CLI
Vous pouvez également utiliser l’interface CLI pour charger des fichiers de symboles :
appcenter crashes upload-symbols --symbol {symbol file}
Code binaire
Bitcode a été introduit par Apple pour permettre aux applications envoyées à l’App Store d’être recompilées par Apple lui-même et d’appliquer la dernière optimisation. Si Bitcode est activé, les symboles générés pour votre application dans le Windows Store sont différents de ceux de votre propre système de génération.
Le rapport d'incidents App Center ne prend pas encore entièrement en charge la symbolication des incidents des applications compatibles avec bitcode. En attendant, nous vous conseillons de désactiver le code binaire. La désactivation du bitcode simplifie considérablement la gestion des symboles et n’a actuellement aucun inconvénient connu pour les applications iOS.
Désactiver le code binaire pour votre application
- Dans Xcode, ouvrez vos paramètres de projet en cliquant sur l’élément de niveau supérieur dans project Navigator
- Accédez à la page Paramètres de build
- Rechercher
bitcode
- Dans le résultat, modifiez la valeur de Oui à Non
- Reconstruire votre application
Avec ces étapes simples, les rapports d’incident de l'App Center fonctionneront comme d’habitude.
Récupérer des symboles pour les applications avec bitcode activées
Si vous souhaitez activer le code binaire, vous pouvez télécharger les fichiers dSYM appropriés en procédant comme suit :
- Ouvrir l’organisateur de Xcode
- Sélectionnez l’archive spécifique de votre application que vous avez chargée sur iTunes Connect
- Cliquez sur le bouton « Télécharger dSYMs ». Cette étape insère les fichiers dSYM compilés bitcode dans l’archive d’origine.
- Charger les symboles dans l’application et la version correspondantes dans App Center
Si l’organisateur Xcode ne fournit aucun nouveau symbole, vous devez télécharger les fichiers dSYM à partir du portail iTunes Connect en procédant comme suit :
- Sélectionnez votre application dans le portail iTunes Connect
- Sélectionnez l’onglet Activité en haut
- Sélectionnez la version de build de votre application avec les symboles manquants
- Cliquez sur le lien Télécharger dSYM
- Chargez le fichier téléchargé dans App Center. Ce fichier contient les symboles requis pour qu'App Center puisse symboliser vos plantages.
Résolution des problèmes de symboles
Si vos blocages apparaissent toujours non-symboliqués après le chargement de symboles et la désactivation du code binaire, cela peut être dû au fait que les fichiers dSYM chargés ne correspondent pas à ceux requis par App Center. Lorsque vous chargez des fichiers dSYM, App Center les correspond à la version d’application appropriée en fonction de leurs UUID.
Vous pouvez vérifier si vos fichiers dSYM disposent des UUID appropriés à l’aide d’un outil CLI appelé dwarfdump.
- Recherchez l’UUID dans le fichier dSYM :
dwarfdump --u CrashProbeiOS.app.dSYM
- Le résultat doit être similaire à celui-ci :
UUID:ADF53C85-4638-3EFF-A33C-42C13A18E915 (armv7)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
UUID:D449E33D-7E74-379D-8B79-15EE104ED1DF (arm64)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
- Vérifiez si l’UUID retourné correspond aux UUID affichés dans la boîte de dialogue des symboles de débogage :
Ignorer les symboles
Quand App Center n’a pas tous les fichiers de symboles pour symboliquer entièrement les rapports d’incident, les incidents sont répertoriés sous l’onglet Non symboliqués. Les symboles requis peuvent être téléchargés depuis cette page si vous y avez accès.
Si vous ne pouvez pas charger les symboles, vous pouvez les marquer comme ignorés en sélectionnant des lignes dans le tableau et en cliquant sur le bouton Ignorer les versions . Ce bouton indique à App Center de traiter les crashs et de les analyser autant que possible avec les symboles disponibles. Une fois leur traitement terminé, ils apparaissent dans l’onglet Blocages partiellement symboliques. De nouveaux plantages qui dépendent également de ces mêmes ID de symboles marqués comme ignorés contourneront l'onglet Non-symbolisé au moment où ils se produisent et transitent par le système.