ios - redes - informacion mediatica
Crashlytics no muestra accidentes (4)
Acabo de instalar Crashlitycs usando this instrucción oficial.
He establecido que el formato de información de depuración es "DWARF with dSYM File" tanto para Debug como para Release y para Bitcode deshabilitado (algunas personas escribieron que podría ayudar):
AppDelegate:
Fabric.sharedSDK().debug = true
Fabric.with([Crashlytics.self])
Para simular un crash utilizo
Crashlytics.sharedInstance().crash()
y
var ggg: Int!
print(ggg)
Crashlitics recopila información sobre las sesiones. Por ejemplo, actualiza la información de las versiones del paquete:
Así funciona la conexión con Crashlitics. Sin embargo, la información del fallo está vacía:
Estoy usando XCode 8 y iOS 9/10. ¿Que estoy haciendo mal?
EDITAR:
Lo he probado en el simulador y el dispositivo sin conexión del depurador XCode (es decir, iniciando desde la pantalla del sumulador / dispositivo)
Finalmente, he recibido algunos informes de Crashlytics después de 7-8 horas después de los accidentes. Los esperaba antes porque según la documentation :
En unos pocos minutos, debería ver aparecer el bloqueo en su Tablero de instrumentos de Fabric.
Sin embargo no recibí todos los choques que estaba esperando. Durante mis experimentos, he intentado diferentes maneras de inicializar Crashlytics:
Fabric.with([Crashlytics.self])
and
Fabric.with([Crashlytics.self()])
¿Podría ser la razón? También he encontrado la question sin respuesta similar.
Comprobado los siguientes términos,
Asegúrese de que la línea del SDK de Crashlytics esté después de todas las otras líneas del SDK de terceros. (debe ser la última llamada en su método appDidFinishLaunching).
Forzar un choque y luego reiniciar la aplicación. Xcode debe estar desconectado para evitar que intercepte el informe del fallo. Para desconectar Xcode, siga las instrucciones here .
Si está utilizando la falla [Crashlytics sharedInstance]]; para probar el bloqueo, asegúrese de que no esté en el método appDidFinishLaunching.
Estos ya se mencionan en la sección de soporte, Aquí hay otros -
- Compruebe en la organización -> Su aplicación -> Falta dSYM, ¿Está mostrando algún archivo dSYM faltante?
Si es así, entonces haz el siguiente paso.
- Haga clic derecho en su archivo -> Mostrar en Finder -> Haga clic derecho en el archivo y haga clic en Mostrar contenido del paquete
- Haga clic derecho en el archivo dSYM -> Mostrar contenido del paquete -> Contenido -> Recursos -> DWARF (Abrir en terminal)
- Ejecute el comando dwarfdump --uuid "nombre de archivo que vio allí en la carpeta enana"
Esto mostrará todos los UUID asociados, y si alguno de los UUID listados coincide con el que se menciona en la identificación de dSYM faltante, simplemente comprima la carpeta dSYM y cárguela en el segmento dSYM faltante de crashlytics.
Este paso es importante porque a veces el archivo dSYM que extraemos del organizador no contiene el UUID correcto. Y luego de subir el incorrecto esperamos sus actualizaciones. Así que es mejor asegurarse de que está cargando el archivo dSYM correcto.
Además de las cosas mencionadas anteriormente, la propiedad Bitcode y el formato de información de depuración en la configuración de compilación también afectan el informe de fallas.
Necesitas ejecutar la aplicación pero no desde Xcode.
Si está utilizando un dispositivo, simplemente inicie la aplicación sin conexión USB. Si está utilizando un simulador, detenga la ejecución de la aplicación desde Xcode. Luego, vuelve a abrirlo haciendo clic con el ratón.
A continuación, navegue hasta el buttonPress
o la function
que llamará a Crashlytics.sharedInstance().crash()
.
Luego, vuelva a abrir la aplicación después de la falla. (Esto podría estar conectado a la consola si lo desea) Este paso es importante porque crashlytics guarda el informe de la falla justo antes de que finalice la aplicación. La próxima vez que abra la aplicación, se publicará el informe en crashlytics.
Los documentos here también explican el problema de solución de problemas.
Otra causa potencial de bloqueos que no se cargan es implementar el delegado de Crashlytics sin llamar al controlador de finalización:
// MARK: CrashlyitcsDelegate
func crashlyticsDidDetectReport(forLastExecution report: CLSReport, completionHandler: @escaping (Bool) -> Void) {
// Last launch we crashed!
}
}
En su lugar, debería verse así:
// MARK: CrashlyitcsDelegate
func crashlyticsDidDetectReport(forLastExecution report: CLSReport, completionHandler: @escaping (Bool) -> Void) {
// Last launch we crashed!
completionHandler(true)
}
}
Verifique dos veces en la configuración de su compilación que su formato de información de depuración sea "DWARF con archivo dSYM" tanto para la depuración como para la versión