Obtenir des rapports d'erreur lisibles dans le tableau de bord Crashlytics (plates-formes Apple)

Sélectionnez une plate-forme : iOS+ Android Flutter Unity


Par défaut, Firebase Crashlytics traite automatiquement vos fichiers de symboles de débogage (dSYM) pour vous fournir des rapports d'erreur désobscurcis et lisibles par l'humain. En général, vous configurez ce comportement lors de la configuration initiale de Crashlytics dans votre application, en particulier en ajoutant un script d'exécution qui importe automatiquement les fichiers dSYM pendant la phase de compilation de votre application.

Malheureusement, dans certains cas, l'importation automatique de vos fichiers dSYM peut échouer. Ce guide propose des solutions pour résoudre les problèmes lorsque Crashlytics ne parvient pas à localiser les fichiers dSYM de votre application.

Assurez-vous que Xcode peut traiter automatiquement les dSYM et importer les fichiers.

Lors de la configuration de Crashlytics dans votre application, vous avez configuré un script d'exécution pour traiter automatiquement les dSYM et importer les fichiers.

Assurez-vous que votre configuration pour le script d'exécution Crashlytics est à jour avec les nouvelles exigences introduites avec Xcode 15. Si votre configuration n'est pas à jour, vous pouvez obtenir l'erreur suivante :
error: Info.plist Error Unable to process Info.plist at path ....

Plus précisément, Xcode 15 et les versions ultérieures exigent que vous fournissiez un ensemble plus complet d'emplacements de fichiers. Pour votre script d'exécution Crashlytics (firebase-ios-sdk/Crashlytics/run), assurez-vous de disposer de la configuration suivante :

  1. Cliquez sur l'onglet Build Phases (Phases de compilation), puis développez la section Run Script (Exécuter le script).

  2. Dans la section Fichiers d'entrée, assurez-vous de disposer des chemins d'accès aux emplacements des fichiers suivants :

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
    Si vous avez ENABLE_USER_SCRIPT_SANDBOXING=YES et ENABLE_DEBUG_DYLIB=YES dans les paramètres de compilation de votre projet, incluez les éléments suivants :
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

Vérifier si Xcode produit des dSYM

Le plus souvent, les fichiers dSYM sont manquants, car Xcode ne les produit pas. En cas d'échec de l'importation, Crashlytics affiche une alerte "dSYM manquant" dans la console Firebase. Si vous recevez cette alerte, vérifiez d'abord que Xcode produit le dSYM approprié pour chaque build :

  1. Ouvrez votre projet dans Xcode, puis sélectionnez le fichier du projet dans le navigateur Xcode.

  2. Sélectionnez votre cible de compilation principale.

  3. Ouvrez l'onglet Build Settings (Paramètres de compilation) de la cible, puis cliquez sur All (Tout).

  4. Recherchez debug information format.

  5. Définissez le format des informations de débogage sur DWARF avec fichier dSYM pour tous vos types de compilation.

  6. Recompilez votre application.

Vos rapports d'erreur devraient maintenant s'afficher dans le tableau de bord Crashlytics. Si le problème persiste ou si vous rencontrez d'autres erreurs, essayez de localiser vos dSYM et de les importer manuellement dans Crashlytics.

Localiser vos fichiers dSYM sur un ordinateur local

Exécutez la commande suivante pour afficher tous les UUID de vos dSYM sur votre machine et rechercher le dSYM manquant :

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

Une fois que vous avez trouvé le fichier dSYM, importez-le manuellement dans Crashlytics. Si la commande mdfind ne renvoie aucun résultat, vous pouvez consulter le répertoire Products où se trouve votre .app (par défaut, le répertoire Products se trouve dans Derived Data). Si votre application est publiée en production, vous pouvez également rechercher son dSYM dans le répertoire .xcarchive sur le disque :

  1. Dans Xcode, ouvrez la fenêtre Organizer, puis sélectionnez votre application dans la liste. Xcode affiche la liste des archives de votre projet.

  2. Cliquez sur une archive en maintenant la touche Ctrl enfoncée pour l'afficher dans le Finder. Cliquez à nouveau dessus en maintenant la touche Ctrl enfoncée, puis cliquez sur Afficher le contenu du package.

  3. .xcarchive contient un répertoire dSYMs qui contient les dSYM générés dans le cadre du processus d'archivage de Xcode.

Importer vos fichiers dSYM

Crashlytics accepte plusieurs méthodes d'importation de vos fichiers dSYM, soit automatiquement, soit manuellement.

(Recommandé) Traitez automatiquement vos fichiers dSYM et importez-les

Lorsque vous avez configuré Crashlytics pour la première fois, vous avez probablement configuré ce comportement d'importation automatique pour votre application. Toutefois, si les importations automatiques échouent, vérifiez que votre configuration est correcte.

Importer manuellement vos fichiers dSYM

Si les importations automatiques échouent, vous pouvez importer manuellement vos fichiers dSYM à l'aide de l'une des options suivantes.

  • Option 1 : utilisez l'interface de glisser-déposer de la console Firebase pour importer un fichier ZIP contenant vos fichiers dSYM (accédez à DevOps et engagement > Tableau de bord Crashlytics > onglet dSYM).

  • Option 2 : utilisez le script upload-symbols que vous pouvez appeler depuis n'importe quel emplacement de votre processus de compilation pour importer manuellement vos fichiers dSYM. Pour exécuter le script upload-symbols, utilisez l'une des options suivantes :

    • Option A : incluez la ligne suivante dans votre processus de compilation :

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • Option B : exécutez directement le script depuis votre terminal :

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    Pour obtenir des notes d'utilisation et des instructions supplémentaires sur ce script, exécutez upload-symbols avec le paramètre --help.