J'essaie de mettre en place un rapport d'incident avec Firebase. J'ai suivi la documentation ici . Et renommé le fichier fils téléchargé en ServiceAccount.json
. Puis copié dans le répertoire du projet. Également changé le script. Maintenant, mon script d'exécution de phase de construction ressemble à
# Replace this with the GOOGLE_APP_ID from your GoogleService-Info.plist file
GOOGLE_APP_ID=1:.....#my app id
# Replace the /Path/To/ServiceAccount.json with the path to the key you just downloaded
"${PODS_ROOT}"/FirebaseCrash/upload-sym "ServiceAccount.json"
Mais quand j'essaye de construire le projet, c'est donner l'erreur de construction
Unexpected argument 'ServiceAccount.json'
usage: /Users/<full path>/Pods/FirebaseCrash/upload-sym [-h] [-v] [-w|-e]
Command /bin/sh failed with exit code 2
Quel est le problème avec mes pas?
C'est le script que j'utilise dans mon projet de pratique.
JSON_FILE=${SRCROOT}/*****/ServiceAccount.json
GOOGLE_APP_ID=1:**********:ios:*********
defaults write com.google.SymbolUpload version -integer 1
JSON=$(cat "${JSON_FILE}")
/usr/bin/plutil -replace "app_${GOOGLE_APP_ID//:/_}" -json "${JSON}" "$HOME/Library/Preferences/com.google.SymbolUpload.plist"
"${PODS_ROOT}"/FirebaseCrash/upload-sym
Si votre fichier JSON se trouve dans le dossier du projet "XYZ", vous avez uniquement besoin de ce "JSON_FILE = $ {SRCROOT} /XYZ/ServiceAccount.json" ou s'il se trouve dans un sous-dossier de XYZ, comme ceci "JSON_FILE = $ { SRCROOT} /XYZ/subFolder/ServiceAccount.json "
Et mettez-vous GOOGLE_APP_ID et c'est tout. Désolé pour le mauvais anglais. J'espère que ça aide :)
Cela fonctionne pour moi. Vient de retirer "
de la méthode décrite dans les documents Firebase.
GOOGLE_APP_ID=1:**********:ios:************
"${PODS_ROOT}"/FirebaseCrash/upload-sym ${SRCROOT}/******/GoogleCrashKey.json
Il semble que le script upload-sym ait été modifié pour prendre un paramètre depuis FirebaseCrash 1.0.7.
Vérifiez votre version du pod FirebaseCrash avec pod outdated
et mettez-la à jour si vous utilisez une version plus ancienne.
Je viens de changer/FirebaseCrash/upload-sym en /FirebaseCrash/upload-sym-util.bash dans mon script, cela a fonctionné
GOOGLE_APP_ID = 1: 1234567830: ios: 7sjghd66373hbdd2 "$ {PODS_ROOT}"/FirebaseCrash/upload-sym-util.bash "/Users/iosteam/Documents/MYLES-iOS-i86994a092e8j8"
La solution d'Abdul a fonctionné pour moi mais je devais remplacer upload-sym par upload-sym-util.bash dans le script, ce qui donnait l'impression suivante:
JSON_FILE=${SRCROOT}/Pods/FirebaseCrash/ServiceAccount.json
GOOGLE_APP_ID=1:*:ios:*
defaults write com.google.SymbolUpload version -integer 1
JSON=$(cat "${JSON_FILE}")
/usr/bin/plutil -replace "app_${GOOGLE_APP_ID//:/_}" -json "${JSON}" "$HOME/Library/Preferences/com.google.SymbolUpload.plist"
"${PODS_ROOT}"/FirebaseCrash/upload-sym-util.bash
Mise à jour : La dernière version de FirebaseCrash a résolu ce problème et son utilisation est maintenant différente.
Les instructions sont fausses. Vous devez générer manuellement le fichier PLIST, mais seulement UNE FOIS. Ce qui suit est mon ajout au script d'Abdul:
# Replace this with the GOOGLE_APP_ID from your GoogleService-Info.plist file
GOOGLE_APP_ID=1:*:iOS:*
# Insert this code BETWEEN the GOOGLE_APP_ID declaration and the
# call to FirebaseCrash/upload-sym, to generate PLIST file if needed
# Note the PLIST_FILE location is hard-coded in firebase script, do not change
PLIST_FILE="${HOME}/Library/Preferences/com.google.SymbolUpload.plist" # DO NOT CHANGE
if [ ! -f "${PLIST_FILE}" ]; then
JSON_FILE="${PODS_ROOT}/FirebaseSymbolUploadKey.json" # Change to location of your file
defaults write com.google.SymbolUpload version -integer 1 # Required by script
JSON=$(cat "${JSON_FILE}")
/usr/bin/plutil -replace "app_${GOOGLE_APP_ID//:/_}" -json "${JSON}" "${PLIST_FILE}"
fi
# Instructions WRONG, don't pass any args, script hard-codes where it looks
# for credentials, which is handled by the JSON conversion above
"${PODS_ROOT}"/FirebaseCrash/upload-sym
Dans mon cas, le script n'a pas trouvé le fichier "FirebaseCrash/upload-sym", car l'article de Google nous recommande uniquement d'ajouter "Firebase/Core" à Podfile.
Et j'ai ajouté: 'Firebase/Crash'
library alors cela a fonctionné, espérons cette aide!
Le dernier script d’import-crash crash de Firebase peut trouver le compte de service json sans spécifier de chemin. Placez-le simplement dans le même dossier que votre fichier xcode xcproject.
Si vous utilisez CocoaPods, quelque chose comme cet exemple de script simple fonctionne:
GOOGLE_APP_ID=1:1234567890:ios:ab123cd456ef789
"${PODS_ROOT}"/FirebaseCrash/upload-sym crash-service-account.json
Si vous ne souhaitez pas télécharger de symboles à chaque fois que vous exécutez, utilisez plutôt le script suivant pour réduire un peu le temps de compilation:
if ["${CONFIGURATION}" != "Debug" ]; then
GOOGLE_APP_ID=1:1234567890:ios:ab123cd456ef789
"${PODS_ROOT}"/FirebaseCrash/upload-sym crash-service-account.json
fi
J'ai FirebaseCrash 1.0.6. Et ma solution était juste utiliser
"${PODS_ROOT}"/FirebaseCrash/upload-sym
sans aucun paramètre.
J'ai fait face au même problème. J'ai les lignes suivantes dans mon podfile:
pod 'Fabric', '~> 1.7.2' Pod 'Crashlytics', '~> 3.9.3'
J'ai résolu le problème en remplaçant les lignes ci-dessus dans le fichier pod en procédant comme suit:
pod 'Firebase/Crash'
Dans mon cas, j’ai fait toutes les étapes de la même manière que tutoriel sur les rapports de crash de Firebase donné, même si j’obtenais la même erreur Plus tard, j'ai réalisé que jadis j'avais implémenté Google Analytics avant Firebase Analytics et Crash Report sur le même projet. Donc, j'ai eu le crash, Pour cela, j'ai supprimé le Google Analytics
de la Podfile
et réinstallé le pod par la commande pod install
dans le terminal.
Premièrement: ajoutez au fichier ServiceAccount ".json" -> ServiceAccount.json
et copiez ce fichier dans le dossier racine de votre projet.
Deuxièmement: définir ce code dans le script d'exécution dans "Build Phases"
GOOGLE_APP_ID= copy here your "GOOGLE_APP_ID" from GoogleService-Info.plist
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${ROOT}"ServiceAccount.json
faites attention à ce que GoogleService-Info.plist ait le "API_KEY"
sinon, allez sur firebase et téléchargez à nouveau ce fichier.
J'ai eu la même erreur; causée par le fait que je mette l'extrait de téléchargement upload-sym dans la post-action de "Archive" au lieu de "Build"
Mais upload-sym ne fonctionne pas dans Archive Post-Action. Cela nécessite des variables d'environnement disponibles uniquement dans les actions de génération.
(p. Je ne voulais pas le télécharger chaque fois que je construisais, mais juste chaque fois que je construisais un build pour l'AppStore.)