No se pudo completar el envío de dSYM cuando la migración de fabric a firebase para crashlytics


12

Estoy usando xcode11 con mac os 10.14.1. Implementé la migración de fabric to firebase usando los siguientes documentos.

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

Y generé código para probar el bloqueo, pero este informe de bloqueo no puede aparecer en la consola de firebase crashlytics. Utilicé el siguiente documento para esta implementación

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

También agregué el siguiente script de ejecución en las fases de compilación de Xcode

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

Pero esto devolverá el siguiente error cuando ejecuto la aplicación.

31merror: No se pudo completar el envío de dSYM en /Users/macmini1/Library/Developer/Xcode/DerivedData/app_name-dnzsvdsxebmfqjbjecjlyhdzwags/Build/Products/Debug-iphonesimulator/app_name.app.dS.Mc.error.mac.error.mac.sc -domain.process-dsym Código = 3 "El archivo ya no existe en (nulo)" UserInfo = {NSLocalizedFailureReason = El archivo ya no existe en (nulo)} [0m El comando PhaseScriptExecution falló con un código de salida distinto de cero

¿Podrías ayudarme a resolver este problema?


¿Sigue experimentando el problema? Firebase tiene un OMG que estaba afectando a los desarrolladores para cargar los dSYMs
Zubair

hola, estoy atrapado en el mismo problema, ¿tuviste suerte? La respuesta de @ weet1988 no solucionó mi problema (ya es el último script que se ejecuta en mi caso)
mikey

1
@mikey Eliminé el script del script de ejecución y nuevamente agregué y también cerré el xcode. Luego intenté ejecutar de nuevo
Funcionará

De hecho, conseguí que Crashlytics funcionara sin el upload-symbolsscript. Acabo de actualizar los pods a las últimas versiones disponibles y me aseguro de que $ {PODS_ROOT}/Fabric/runfue el último en ejecutarse. Gracias por su respuesta @IKKA
mikey

@mikey Querías decir que estás usando solo el comando $ {PODS_ROOT} / Fabric / run en runscript; ¿Correcto?
IKKA

Respuestas:


5

Yo tuve el mismo problema. La razón fue que el script "$ {PODS_ROOT} / Fabric / run" no fue el último en la lista de scripts en Build Phases. Hizo que el guión dure y todo se volvió correcto.


2
mi guión es el último pero aún recibo este error ...
Danpe

5

He resuelto agregando findcomando. Agregue el comando de búsqueda sobre los símbolos de carga

Ejemplo:

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

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


¿Necesitamos cargar otros archivos .dSYM que no sean $ {DWARF_DSYM_FILE_NAME}?
CyberMew

@CyberMew, no es necesario cargar todo el archivo .dSYM. tienes razón. Entonces podemos encontrar solo el archivo que necesitamos cargar. He modificado mi respuesta.
Ramesh RC

Creo que su respuesta original para cargar todos los archivos .dSYM es correcta. Lo he verificado con soporte, y mencionaron que "Crashlytics requerirá los archivos de símbolos de su aplicación principal junto con los símbolos de cualquier marco o biblioteca utilizada". básicamente sí, se requieren todos los archivos de símbolos.
CyberMew

¡Eso es súper genial! Cuando subo todos los archivos .dSYM para probar el vuelo, recibo una advertencia "ITMS-90381: Demasiados archivos de símbolos". ¿Alguna idea?
Ramesh RC

Subir a test flight? ¿Te refieres a Firebase Crashlytics en su lugar? No estoy seguro, ya que no lo he encontrado antes, ¡tal vez pueda probar esta solución stackoverflow.com/questions/25755240/… , si no funciona, póngase en contacto con el soporte y díganos qué dicen!
CyberMew
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.