18
votes

Impossible de terminer la soumission de dSYM lors de la migration de fabric vers firebase pour crashlytics

J'utilise xcode11 avec mac os 10.14.1. J'ai implémenté la migration de fabric vers firebase à l'aide des documents suivants.

https://medium.com/@niamhpower/the-great-migration-moving-from-fabric-to-firebase-as-an-ios-developer-7b61a8b40008

Et j'ai généré du code pour tester le crash, mais ce rapport de plantage ne peut pas apparaître dans la console firebase crashlytics J'ai utilisé le document suivant pour cette implémentation

https://firebase.google.com/docs/crashlytics/force-a-crash?platform=ios

J'ai également ajouté le script d'exécution suivant dans les phases de construction Xcode

"$ {PODS_ROOT} / Fabric / upload-symboles" -gsp "$ {PROJECT_DIR} /GoogleService-Info.plist" -p ios "$ {DWARF_DSYM_FOLDER_PATH} / $ {DWARF_DSYM_FILE_NAME}"

Mais cela renverra l'erreur suivante lorsque j'exécute l'application.

31merror: Impossible de terminer la soumission de dSYM à /Users/macmini1/Library/Developer/Xcode/DerivedData/app_name-dnzsvdsxebmfqjbjecjlyhdzwags/Build/Products/Debug-iphonesimulator/Yapp_name.apptly.domaine.microsoft.com -domain.process-dsym Code = 3 "Le fichier n'existe plus à (null)" UserInfo = {NSLocalizedFailureReason = Le fichier n'existe plus à (null)} [0m Command PhaseScriptExecution a échoué avec un code de sortie différent de zéro

Pourriez-vous s'il vous plaît m'aider à résoudre ce problème


6 commentaires

Rencontrez-vous toujours le problème. Firebase ayant un OMG qui incitait les développeurs à télécharger les dSYM


salut, je suis coincé sur le même problème, avez-vous eu de la chance? La réponse de @ weet1988 n'a pas résolu mon problème (c'est déjà le dernier script en cours d'exécution dans mon cas)


@mikey J'ai supprimé le script du script d'exécution et à nouveau ajouté et fermé le xcode, puis j'ai essayé de l'exécuter à nouveau.


J'ai en fait fait fonctionner Crashlytics sans le script upload-symbols . Je viens de mettre à jour les pods avec les dernières versions disponibles et je m'assure que $ {PODS_ROOT}/Fabric/run était le dernier à être exécuté. Merci pour votre réponse @IKKA


@mikey Vous vouliez dire que vous n'utilisez que la commande $ {PODS_ROOT} / Fabric / run dans runscript; droite?


oui @IKKA et jusqu'à présent, cela fonctionne très bien. J'ai ajouté le upload-symbol parce que Crashlytics a cessé de fonctionner, je pense vers la mi-octobre. Mais je n'ai toujours pas pu mettre à jour les fichiers dsym. Comme je l'ai déjà dit, la mise à jour des pods a résolu mon problème. J'ai dû faire un nettoyage puis une mise à jour, si je me souviens bien


4 Réponses :


12
votes

J'ai eu le même problème. La raison en était que le script "$ {PODS_ROOT} / Fabric / run" n'était pas le dernier de la liste des scripts des phases de construction. Fait durer le script et tout est devenu OK.


1 commentaires

Si vous déplacez la ligne d'exécution à la fin du script, la construction n'échouera pas mais le fichier dysm ne sera pas envoyé à Crashlytics



6
votes

J'ai résolu en ajoutant la commande find . Ajouter la commande find au-dessus des symboles de téléchargement

Exemple :

trouver "$ {DWARF_DSYM_FOLDER_PATH}" -name "* .dSYM" | xargs -I {} $ PODS_ROOT / Fabric / upload-symboles -gsp "$ {PROJECT_DIR} /MyApp/GoogleService-Info.plist" -p ios {}

"$ {PODS_ROOT} / Fabric / upload-symboles" -gsp "$ {PROJECT_DIR} /MyApp/GoogleService-Info.plist" -p ios "$ {DWARF_DSYM_FOLDER_PATH} / $ {DWARF_DSYM_FILE_NAME}"


7 commentaires

Avons-nous besoin d'importer d'autres fichiers .dSYM qui ne sont pas $ {DWARF_DSYM_FILE_NAME}?


@CyberMew, il n'est pas nécessaire de télécharger tout le fichier .dSYM. tu as raison. Nous ne pouvons donc trouver que le fichier que nous devons télécharger. J'ai modifié ma réponse.


Je pense que votre réponse initiale pour télécharger tous les fichiers .dSYM est correcte. J'ai vérifié avec le support, et ils ont mentionné que "Crashlytics nécessitera les fichiers de symboles de votre application principale ainsi que les symboles de tout framework ou bibliothèque utilisé.", Donc fondamentalement oui, tous les fichiers de symboles sont nécessaires.


C'est super cool !. Lorsque je télécharge tous les fichiers .dSYM pour tester le vol, je reçois un avertissement "ITMS-90381: Trop de fichiers de symboles". Une idée?


Télécharger pour test flight ? Voulez-vous plutôt parler de Firebase Crashlytics? Je ne suis pas sûr car je ne l'ai jamais rencontré auparavant, peut-être que vous pouvez essayer cette solution stackoverflow.com/questions/25755240/… , si cela ne fonctionne pas, contactez le support et dites-nous ce qu'ils disent!


@CyberMew, merci pour la référence. oui le problème a été résolu :)


Guide officiel de Google: firebase.google.com/docs/crashlytics / ...



1
votes

Essayez d'exécuter votre application (ou de créer une archive, etc.) sans le script (pour créer des fichiers DSYM la première fois) en la supprimant de Build Phases --> Run Script , puis ajoutez le script et réessayez.

(A travaillé pour moi avec le script FirebaseCrashlytics/upload-symbols )


1 commentaires

# Tapez un script ou faites glisser un fichier de script depuis votre espace de travail pour insérer son chemin. "$ {PODS_ROOT} / FirebaseCrashlytics / run" "$ {PODS_ROOT} / FirebaseCrashlytics / upload-symboles" -gsp "$ {PROJECT_DIR} /GoogleService-Info.plist" -p ios "$ {DWARF_DSYM_FOLDER_P DWATH} $" $ "DSFOLDER_P DWATH}



0
votes

Dans mon cas, j'ai essayé de télécharger la version décompressée des dSYM. Ma construction produit un fichier myapp.app.dsym.zip . Vous devez télécharger la version zippée.


0 commentaires