Obtenez des rapports d'erreur lisibles dans le tableau de bord Crashlytics


Par défaut, Firebase Crashlytics traite automatiquement vos fichiers de symboles de débogage (dSYM) pour vous fournir des rapports d'erreur simplifiés et compréhensibles. Vous configurez généralement ce comportement lors de la configuration initiale de Crashlytics dans votre application, en ajoutant un script d'exécution qui importe automatiquement les fichiers dSYM lors de la phase de compilation de votre application.

Malheureusement, il existe plusieurs raisons pour lesquelles l'importation automatique de vos fichiers dSYM peut échouer. Ce guide fournit quelques méthodes de dépannage lorsque Crashlytics ne parvient pas à localiser les fichiers dSYM de votre application.

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

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

Assurez-vous que votre configuration pour le script d'exécution Crashlytics est à jour avec les nouvelles exigences qui ont commencé avec Xcode 15. Si votre configuration n'est pas à jour, vous pouvez recevoir 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 d'avoir 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 d'avoir les 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 fichiers dSYM

Le plus souvent, les fichiers dSYM sont manquants parce qu'Xcode ne les produit tout simplement pas. Lorsqu'un importateur échoue, Crashlytics affiche une alerte "Fichier dSYM manquant" dans la console Firebase. Si vous recevez cette alerte, vérifiez d'abord qu'Xcode produit le fichier dSYM correct pour chaque compilation :

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

  2. Sélectionnez votre principal build cible.

  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 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 rechercher le fichier dSYM dans 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 fichier dSYM dans le répertoire .xcarchive sur le disque :

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

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

  3. Dans .xcarchive se trouve un répertoire dSYMs contenant les fichiers dSYMs générés lors du processus d'archivage d'Xcode.

Importer vos fichiers dSYM

Crashlytics permet d'importer vos fichiers dSYMs de plusieurs façons, soit automatiquement, soit manuellement.

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

Lorsque vous avez configuré Crashlytics, vous avez probablement défini 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'option "Glisser-déposer" basée sur la console pour importer un fichier ZIP contenant vos fichiers dSYM (accédez à la console Firebase > onglet Crashlytics > dSYM).

  • Option 2 : Utilisez le script upload-symbols que vous pouvez appeler depuis n'importe quel endroit 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 le script directement 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.