Error de compilation de files de símbolo de carga de Firebase: argumento inesperado 'ServiceAccount.json'

Estoy intentando implementar informes de fallas con firebase. Seguí la documentation aquí . Y cambió el nombre del file hijo descargado a ServiceAccount.json . Luego lo copió al directory del proyecto. También cambió el guión. Ahora mi script de ejecución de fase de compilation se ve como

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

Pero cuando bash build el proyecto da error de compilation

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

¿Qué pasa con mis pasos?

Este es el guión que uso en mi proyecto de práctica.

 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 su file JSON está en la carpeta del proyecto "XYZ", entonces solo necesita este "JSON_FILE = $ {SRCROOT} /XYZ/ServiceAccount.json" o si está en un subcarpeta de XYZ, entonces "JSON_FILE = $ {SRCROOT} /XYZ/subFolder/ServiceAccount.json "

Y configurarlo GOOGLE_APP_ID y eso es todo. lo siento por mal inglés Espero eso ayude 🙂

Esto funciona para mí. Acaba de eliminar " del método descrito en los documentos de Firebase.

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

Parece que el script upload-sym se ha cambiado para tomar un parámetro desde FirebaseCrash 1.0.7.

Verifique su versión del pod de FirebaseCrash por medio de un pod outdated y actualícelo si usa uno más antiguo.

Actualización : la última FirebaseCrash lo ha solucionado y el uso ahora es diferente.

Las instrucciones son incorrectas. Debe generar manualmente el file PLIST, pero solo UNA VEZ. Lo siguiente es mi adición al guión de 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 # Requinetworking 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 cnetworkingentials, which is handled by the JSON conversion above "${PODS_ROOT}"/FirebaseCrash/upload-sym 

En mi caso, el script no pudo encontrar el 'FirebaseCrash / upload-sym' porque el artículo de Google solo nos recomienda agregar 'Firebase / Core' a Podfile.

Y agregué: 'Firebase/Crash' biblioteca 'Firebase/Crash' funcionó, ¡espero que esta ayuda!

La solución de Abdul funcionó para mí, pero tuve que replace upload-sym con upload-sym-util.bash en el script, por lo que terminó pareciendo así:

 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 

La última secuencia de commands de locking de subida de firebase upload-sym puede encontrar la count de service json sin especificar ninguna ruta, simplemente colóquela en la misma carpeta al lado de su file Xcode xcproject.

Si está utilizando CocoaPods, algo así como este simple ejemplo de script funciona:

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

Si no desea cargar símbolos cada vez que ejecuta, utilice el siguiente script para networkingucir un poco el time de compilation:

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

Primero: agregue al file ServiceAccount ".json" -> ServiceAccount.json

y copie ese file a la carpeta raíz de su proyecto.

Segundo: establezca este código en el script de ejecución en "Fases de compilation"

 GOOGLE_APP_ID= copy here your "GOOGLE_APP_ID" from GoogleService-Info.plist "${PODS_ROOT}"/FirebaseCrash/upload-sym "${ROOT}"ServiceAccount.json 
  • presta atención a que GoogleService-Info.plist tenga el "API_KEY"

    si no ir a Firebase y download este file nuevamente.

En mi caso, hice todos los pasos del mismo modo que el tutorial de informe de falla de Firebase dado, todavía estaba recibiendo el mismo ERROR. Más tarde, me di count una vez que implementé Google Analytics antes de Firebase Analytics y Crash Report en el mismo proyecto. Así que estaba recibiendo el locking, por lo que he eliminado el Google Analytics del Podfile y Podfile reinstalado el pod por el command de pod install en el terminal.

Yo tenía el mismo error; causado por mí poniendo el fragment upload-sym en la acción posterior de "Archivo" en lugar de "Crear"

Pero upload-sym no funciona en Archive Post-Action. Requiere variables de entorno que solo están disponibles en las acciones de compilation.

(ps no quería que se cargara cada vez que comstackba, solo cada vez que hago una compilation para la AppStore).

Tengo FirebaseCrash 1.0.6. Y mi solución fue simplemente usar

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

sin ningún parámetro

Acabo de cambiar / FirebaseCrash / upload-sym a /FirebaseCrash/upload-sym-util.bash en mi script, funcionó

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