wake-up-neo.com

Fehler beim Errichten von Firebase-Upload-Symboldateien: Unerwartetes Argument 'ServiceAccount.json'

Ich versuche, Absturzberichte mit Firebase zu implementieren. Ich habe die Dokumentation hier verfolgt. Und die heruntergeladene Son-Datei in ServiceAccount.json umbenannt. Dann in das Projektverzeichnis kopiert. Auch das Skript wurde geändert. Nun sieht mein Skript für die Buildphase aus

# 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"

Aber wenn ich versuche, das Projekt zu erstellen, gibt es einen Build-Fehler

Unexpected argument 'ServiceAccount.json'
usage: /Users/<full path>/Pods/FirebaseCrash/upload-sym [-h] [-v] [-w|-e]
Command /bin/sh failed with exit code 2

Was ist los mit meinen Schritten?

8
Johnykutty

Dies ist das Skript, das ich in meinem Übungsprojekt verwende.

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

Wenn sich Ihre JSON-Datei im Projektordner "XYZ" befindet, benötigen Sie nur dieses "JSON_FILE = $ {SRCROOT} /XYZ/ServiceAccount.json" oder wenn es sich in einem Unterordner von XYZ befindet, dann "JSON_FILE = $ {" SRCROOT} /XYZ/subFolder/ServiceAccount.json "

Und setzen Sie GOOGLE_APP_ID und das ist es. Entschuldigung für schlechtes Englisch. Ich hoffe es hilft :)

22

Das funktioniert für mich. Soeben wurde " aus der in Firebase-Dokumenten beschriebenen Methode entfernt.

GOOGLE_APP_ID=1:**********:ios:************
"${PODS_ROOT}"/FirebaseCrash/upload-sym ${SRCROOT}/******/GoogleCrashKey.json
6
Sahil Kapoor

Es scheint, dass das Upload-Sym-Skript seit FirebaseCrash 1.0.7 so geändert wurde, dass ein Parameter verwendet wird.

Überprüfen Sie Ihre FirebaseCrash-Pod-Version mit pod outdated und aktualisieren Sie sie, falls Sie eine ältere Version verwenden.

3
Hiron

Ich habe gerade/FirebaseCrash/upload-sym in /FirebaseCrash/upload-sym-util.bash in meinem Skript geändert, es hat funktioniert

GOOGLE_APP_ID = 1: 1234567830: ios: 7sjghd66373hbdd2 "$ {PODS_ROOT}"/FirebaseCrash/upload-sym-util.bash "/Users/iosteam/Documents/MYLES-i86-a86994a092e8.json"

3
Sourabh Shekhar

Abduls Lösung funktionierte für mich aber Ich musste upload-sym durch upload-sym-util.bash im Skript ersetzen, also sah es so aus:

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
3

Update : Der neueste FirebaseCrash hat dieses Problem behoben und die Verwendung ist jetzt anders.

Die Anweisungen sind falsch. Sie müssen die PLIST-Datei manuell generieren, jedoch nur EINMAL. Das Folgende ist meine Ergänzung zu Abdul's Skript:

# 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
2
Speedy99

In meinem Fall konnte das Skript 'FirebaseCrash/upload-sym' nicht finden, da der Google-Artikel uns nur empfiehlt, 'Firebase/Core' zu Podfile hinzuzufügen. 

Und ich fügte hinzu: 'Firebase/Crash' Bibliothek dann hat es funktioniert, hoffe diese Hilfe!

2
ChenHuang

Das neueste Firebase-Absturz-Upload-Sym-Skript kann das Dienstkonto json ohne Angabe eines Pfads finden. Platzieren Sie es einfach in demselben Ordner neben Ihrer Xcode-Xcproject-Datei.

Wenn Sie CocoaPods verwenden, funktioniert das folgende einfache Skriptbeispiel:

GOOGLE_APP_ID=1:1234567890:ios:ab123cd456ef789
"${PODS_ROOT}"/FirebaseCrash/upload-sym crash-service-account.json

Wenn Sie nicht bei jeder Ausführung Symbole hochladen möchten, verwenden Sie stattdessen das folgende Skript, um die Kompilierzeit etwas zu verkürzen:

if ["${CONFIGURATION}" != "Debug" ]; then
GOOGLE_APP_ID=1:1234567890:ios:ab123cd456ef789
"${PODS_ROOT}"/FirebaseCrash/upload-sym crash-service-account.json
fi
1
Dhiraj Gupta

Ich habe FirebaseCrash 1.0.6. Und meine Lösung war einfach zu gebrauchen

"${PODS_ROOT}"/FirebaseCrash/upload-sym

ohne Parameter.

1

Ich stand vor demselben Problem. Ich habe folgende Zeilen in meiner Poddatei:

pod 'Stoff', '~> 1.7.2' pod 'Crashlytics', '~> 3.9.3'

Ich habe das Problem behoben, indem ich die obigen Zeilen in der Pod-Datei durch Folgendes ersetzt:

pod 'Firebase/Crash'

0
Tanvi Jain

In meinem Fall habe ich alle Schritte gleich gemacht wie firebase crash report Tutorial , obwohl ich immer noch die gleiche Fehlermeldung bekam. Später wurde mir klar, als ich Google Analytics vor Firebase Analytics und Crash Report für dasselbe Projekt implementiert hatte. Also bekam ich den Absturz. Dafür habe ich den Google Analytics aus der Podfile entfernt und den Pod mit dem pod install-Befehl im Terminal neu installiert.

0
Manab Kumar Mal

Fügen Sie zunächst der Datei ServiceAccount ".json" -> ServiceAccount.json hinzu

und kopieren Sie diese Datei in den Stammordner Ihres Projekts.

Zweitens: Legen Sie diesen Code im Ausführungsskript in "Phasen erstellen" fest.

GOOGLE_APP_ID= copy here your "GOOGLE_APP_ID" from GoogleService-Info.plist

"${PODS_ROOT}"/FirebaseCrash/upload-sym  "${ROOT}"ServiceAccount.json
  • beachten Sie, dass GoogleService-Info.plist die "API_KEY" hat. 

    wenn nicht, gehen Sie zur Firebase und laden Sie diese Datei erneut herunter. 

0
Roei Nadam

Ich hatte den gleichen Fehler. verursacht von mir das Upload-Sym-Snippet in die Post-Action von "Archiv" statt "Build" gestellt wurde

Upload-Sym funktioniert jedoch nicht in der Archiv-Nachaktion. Es sind Umgebungsvariablen erforderlich, die nur in Build-Aktionen verfügbar sind.

(p.s. Ich wollte nicht, dass er jedes Mal hochlädt, wenn ich baue, nur wenn ich einen Build für den AppStore mache.) 

0
Billy