Cette page fournit une aide pour le dépannage et des réponses aux questions fréquentes sur l'utilisation de Crashlytics. Si vous ne trouvez pas ce que vous cherchez ou si vous avez besoin d'aide supplémentaire, contactez l'assistance Firebase.
Dépannage général/FAQ
Affichage de différents formats (et parfois de "variantes") pour certains problèmes dans le tableau Problèmes
Vous remarquerez peut-être deux formats différents pour les problèmes listés dans le tableau Problèmes de la console Firebase. Vous remarquerez peut-être également une fonctionnalité appelée "variantes" dans certains de vos problèmes. Voici pourquoi :
Début 2023, nous avons déployé un moteur d'analyse amélioré pour regrouper les événements, ainsi qu'une nouvelle interface et des fonctionnalités avancées pour les nouveaux problèmes (comme les variantes). Pour en savoir plus, consultez notre article de blog récent. Vous trouverez ci-dessous les points forts.
Crashlytics analyse tous les événements de votre application (comme les plantages, les erreurs non fatales et les erreurs ANR) et crée des groupes d'événements appelés problèmes. Tous les événements d'un problème ont un point de défaillance commun.
Pour regrouper les événements dans ces problèmes, le moteur d'analyse amélioré examine désormais de nombreux aspects de l'événement, y compris les frames dans la trace de la pile, le message d'exception, le code d'erreur et d'autres caractéristiques de la plate-forme ou du type d'erreur.
Toutefois, dans ce groupe d'événements, les traces de la pile menant à la défaillance peuvent être différentes. Une trace de pile différente peut indiquer une cause première différente.
Pour représenter cette différence possible dans un problème, nous créons désormais des variantes dans les problèmes. Chaque variante est un sous-groupe d'événements d'un problème ayant le même point de défaillance et une trace de pile similaire. Avec les variantes, vous pouvez déboguer les traces de pile les plus courantes d'un problème et déterminer si différentes causes sont à l'origine de l'échec.
Voici ce que vous allez constater avec ces améliorations:
Métadonnées remaniées affichées dans la ligne du problème Vous pouvez désormais comprendre et trier plus facilement les problèmes de votre application.
Moins de problèmes en double Un changement de numéro de ligne ne génère pas de nouveau problème.
Débogage plus facile des problèmes complexes avec différentes causes Utilisez des variantes pour déboguer les traces de pile les plus courantes d'un problème.
Alertes et signaux plus pertinents Un nouveau problème représente en fait un nouveau bug.
Recherche plus efficace Chaque problème contient plus de métadonnées pouvant être recherchées, comme le type d'exception et le nom du package.
Voici comment ces améliorations seront déployées:
Lorsque nous recevons de nouveaux événements de votre application, nous vérifions s'ils correspondent à un problème existant.
En l'absence de correspondance, nous appliquerons automatiquement notre algorithme de regroupement d'événements plus intelligent à l'événement et créerons un nouveau problème avec la conception repensée des métadonnées.
Il s'agit de la première mise à jour importante que nous apportons à notre regroupement d'événements. Si vous avez des commentaires ou rencontrez des problèmes, n'hésitez pas à nous en faire part en
signalant le problème
.
Métriques sans plantage et/ou alertes de vitesse manquantes
Si vous ne voyez pas de métriques sans plantage (comme les utilisateurs et les sessions sans plantage) et/ou d'alertes de vitesse, assurez-vous d'utiliser le
SDK Crashlytics 10.8.0 ou version ultérieure.
Les journaux de fil d'Ariane ne s'affichent pas
Si vous ne voyez pas de journaux de fil d'Ariane, nous vous recommandons de vérifier la configuration de votre application pour Google Analytics.
Assurez-vous de remplir les conditions suivantes:
Vérifiez en particulier que vous utilisez au moins la version suivante du SDK Firebase pour Google Analytics : iOS et versions ultérieures : version 6.3.1 ou ultérieure (version 8.9.0 ou ultérieure pour macOS et tvOS).
Les fichiers dSYM sont manquants ou ne sont pas importés
Pour importer les dSYM de votre projet et obtenir une sortie détaillée, vérifiez les points suivants:
Assurez-vous que la phase de compilation de votre projet contient le script d'exécution Crashlytics, qui permet à Xcode d'importer les dSYM de votre projet au moment de la compilation (consultez la section Initialiser Crashlytics pour savoir comment ajouter le script). Après avoir mis à jour votre projet, forcez un plantage et vérifiez qu'il apparaît dans le tableau de bord Crashlytics.
Si une alerte "dSYM manquant" s'affiche dans la console Firebase, vérifiez Xcode pour vous assurer qu'il génère correctement des dSYM pour la compilation.
Si Xcode produit correctement des fichiers dSYM et que des fichiers dSYM sont toujours manquants, il est probable que l'outil d'exécution du script se bloque lors de l'importation des fichiers dSYM.
Dans ce cas, essayez chacune des solutions suivantes:
Assurez-vous d'utiliser la dernière version de Crashlytics.
Importez manuellement les fichiers dSYM manquants:
Option 1:utilisez l'option "Glisser-déposer" de la console dans l'onglet dSYM pour importer une archive ZIP contenant les fichiers dSYM manquants.
Option 2:Utilisez le script upload-symbols pour importer les fichiers dSYM manquants pour les UUID fournis dans l'onglet dSYM.
Si des dSYM manquent toujours ou si les importations ne fonctionnent toujours pas, contactez l'assistance Firebase et veillez à inclure vos journaux.
Les plantages sont mal symbolisés
Si vos traces de pile semblent mal décomposées, vérifiez les points suivants:
Si les frames de la bibliothèque de votre application ne comportent pas de références au code de votre application, assurez-vous que -fomit-frame-pointer n'est pas défini comme indicateur de compilation.
Si plusieurs cadres (Missing) s'affichent pour la bibliothèque de votre application, vérifiez si des dSYM facultatifs sont répertoriés comme manquants (pour la version de l'application concernée) dans l'onglet CrashlyticsdSYM de la console Firebase. Si c'est le cas, suivez la procédure de dépannage "Alerte de fichier dSYM manquant" dans la FAQ sur les fichiers dSYM manquants/non importés sur cette page. Notez que l'importation de ces dSYM ne décode pas les plantages déjà survenus, mais elle permet de garantir la décompilation des plantages futurs.
Qui peut consulter, rédiger et supprimer des notes sur un problème ?
Les notes permettent aux membres du projet de commenter des problèmes spécifiques en posant des questions, en fournissant des informations sur l'état, etc.
Lorsqu'un membre d'un projet publie une note, elle est associée à l'adresse e-mail de son compte Google. Cette adresse e-mail, ainsi que la note, sont visibles par tous les membres du projet autorisés à les consulter.
Vous trouverez ci-dessous l'accès requis pour afficher, écrire et supprimer des notes:
Les membres du projet disposant de l'un des rôles suivants peuvent afficher et supprimer les notes existantes, et en créer de nouvelles pour un problème.
Les membres du projet disposant de l'un des rôles suivants peuvent afficher les notes publiées sur un problème, mais ne peuvent pas les supprimer ni en écrire.
Qui peut consulter, rédiger et supprimer des notes sur un problème ?
Les notes permettent aux membres du projet de commenter des problèmes spécifiques en posant des questions, en fournissant des informations sur l'état, etc.
Lorsqu'un membre d'un projet publie une note, elle est associée à l'adresse e-mail de son compte Google. Cette adresse e-mail, ainsi que la note, sont visibles par tous les membres du projet autorisés à les consulter.
Vous trouverez ci-dessous l'accès requis pour afficher, écrire et supprimer des notes:
Les membres du projet disposant de l'un des rôles suivants peuvent afficher et supprimer les notes existantes, et en créer de nouvelles pour un problème.
Les membres du projet disposant de l'un des rôles suivants peuvent afficher les notes publiées sur un problème, mais ne peuvent pas les supprimer ni en écrire.
L'application utilise également le SDK Google Mobile Ads, mais ne plante pas
Si votre projet utilise Crashlytics avec le SDK Google Mobile Ads, il est probable que les outils de signalement des plantages interfèrent lors de l'enregistrement des gestionnaires d'exceptions. Pour résoudre le problème, désactivez le signalement des plantages dans le SDK Mobile Ads en appelant disableSDKCrashReporting.
Où se trouve mon ensemble de données BigQuery ?
Une fois que vous avez associé Crashlytics à BigQuery, les nouveaux ensembles de données que vous créez sont automatiquement situés aux États-Unis, quel que soit l'emplacement de votre projet Firebase.
Compatibilité avec les plates-formes
Puis-je utiliser Crashlytics pour macOS ou tvOS ?
Oui, vous pouvez implémenter Crashlytics dans des projets macOS et tvOS. Assurez-vous d'inclure la version 8.9.0 ou ultérieure du SDK Firebase pour Google Analytics afin que les plantages aient accès aux métriques collectées par Google Analytics (utilisateurs sans plantage, dernière version, alertes de vitesse et journaux de repères).
Puis-je utiliser Crashlytics dans un projet Firebase avec plusieurs applications sur différentes plates-formes Apple ?
Vous pouvez désormais signaler des plantages pour plusieurs applications dans un même projet Firebase, même si les applications sont compilées pour différentes plates-formes Apple (par exemple, iOS, tvOS et Mac Catalyst). Auparavant, vous deviez séparer les applications en projets Firebase individuels si elles contenaient le même ID de bundle.
Problèmes régressifs
Qu'est-ce qu'un problème de régression ?
Un problème a régressé lorsque vous l'avez déjà fermé, mais que Crashlytics reçoit un nouveau rapport indiquant qu'il est à nouveau survenu.
Crashlytics rouvre automatiquement ces problèmes de régression afin que vous puissiez les résoudre en fonction de votre application.
Voici un exemple de scénario expliquant comment Crashlytics catégorise un problème en tant que régression:
Pour la première fois, Crashlytics reçoit un rapport d'erreur concernant l'erreur "A". Crashlytics ouvre un problème correspondant à ce plantage (problème "A").
Vous corrigez rapidement ce bug, fermez le problème A, puis publiez une nouvelle version de votre application.
Crashlytics reçoit un autre signalement concernant le problème A après que vous l'avez clôturé.
Si le rapport provient d'une version d'application que Crashlyticsconnaissait lorsque vous avez clôturé le problème (c'est-à-dire que la version a envoyé un rapport d'erreur pour tout plantage), Crashlytics ne considérera pas le problème comme une régression. Le problème restera clôturé.
Si le rapport provient d'une version d'application dont Crashlyticsn'avaitpas connaissance lorsque vous avez clôturé le problème (c'est-à-dire que la version n'a jamais envoyé aucun rapport d'erreur pour un plantage), Crashlytics considère que le problème est en régression et le rouvre.
Lorsqu'un problème régresse, nous envoyons une alerte de détection de régression et ajoutons un signal de régression au problème pour vous indiquer que Crashlytics l'a rouvert. Si vous ne souhaitez pas qu'un problème soit à nouveau ouvert en raison de notre algorithme de régression, mettez-le "en sourdine" au lieu de le fermer.
Pourquoi des problèmes de régression apparaissent-ils pour les anciennes versions de l'application ?
Si un rapport provient d'une ancienne version de l'application qui n'a jamais envoyé de rapports d'erreur lorsque vous avez clôturé le problème, Crashlytics considère que le problème a régressé et le rouvre.
Cette situation peut se produire dans le cas suivant: vous avez corrigé un bug et publié une nouvelle version de votre application, mais des utilisateurs utilisent toujours d'anciennes versions sans correction du bug. Si, par hasard, l'une de ces anciennes versions n'a jamais envoyé de rapports de plantage lorsque vous avez clos le problème et que ces utilisateurs commencent à rencontrer le bug, ces rapports de plantage déclencheront un problème de régression.
Si vous ne souhaitez pas qu'un problème soit à nouveau ouvert en raison de notre algorithme de régression, "coupez le son" du problème au lieu de le fermer.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/02/21 (UTC).
[null,null,["Dernière mise à jour le 2025/02/21 (UTC)."],[],[]]