ios - log - firebase crash reporting to crashlytics
Crashlytics iOS-excepción de registro capturado (5)
Finalmente Crashlytics agregó la característica deseada 3.5.0 !!
[CrashlyticsKit recordError:error];
o
Crashlytics.sharedInstance().recordError(error)
Referencia
/**
*
* This allows you to record a non-fatal event, described by an NSError object. These events will be grouped and
* displayed similarly to crashes. Keep in mind that this method can be expensive. Also, the total number of
* NSErrors that can be recorded during your app''s life-cycle is limited by a fixed-size circular buffer. If the
* buffer is overrun, the oldest data is dropped. Errors are relayed to Crashlytics on a subsequent launch
* of your application.
*
* You can also use the -recordError:withAdditionalUserInfo: to include additional context not represented
* by the NSError instance itself.
*
**/
- (void)recordError:(NSError *)error;
- (void)recordError:(NSError *)error withAdditionalUserInfo:(nullable CLS_GENERIC_NSDICTIONARY(NSString *, id) *)userInfo;
https://docs.fabric.io/ios/changelog.html#january-7-2016
HISTORIA
Esto realmente no funciona como esperaba: el mensaje se guarda en Crashlytics pero solo después de que la aplicación se reinicia y solo se guardará el último mensaje.
Hasta ahora no funciona ninguna de las soluciones aquí mencionadas. No hay manera de rastrear las excepciones manejadas en iOS usando Crashlytics.
Puedes usar esto para registrar cualquier excepción
[[Crashlytics sharedInstance] recordCustomExceptionName:@"HandledException" reason:@"Some reason" frameArray:@[]];
En Crashlytics lo verá en el informe de bloqueo, pero con el tipo NON-FATALS
.
Evento, si no es así, las excepciones de uso se registran de la misma manera que las excepciones manejadas por Android.
Esto está disponible en la versión 3.0.7.
recordCustomExceptionName: reason: frameArray:
Este método se puede usar para registrar una única estructura de excepción en un informe. Esto es particularmente útil cuando su código interactúa con idiomas no nativos como Lua, C # o Javascript. Esta llamada puede ser costosa y solo debe usarse poco antes de la finalización del proceso. Esta API no se debe utilizar para registrar objetos NSException. Todos los NSExceptions reportables de forma segura son capturados automáticamente por Crashlytics.
Encontré una forma de registrar excepciones capturadas personalizadas en el SDK de Crashlytics para Android, pero no puedo encontrar nada de eso para el SDK de iOS. ¿Hay alguna manera de registrar una excepción capturada con Crashlytics en iOS?
Consulte la explicación de Android: http://support.crashlytics.com/knowledgebase/articles/202805-logging-caught-exceptions
He pasado por diferentes sitios para que esta funcionalidad sea compatible con IOS alternativo a Crashlytics.
Descubrí que crittercism es el mejor hasta ahora .. @ Dima, creo que es la alternativa a los Crashlytics ... inténtalo.
Aquí hay algunos enlaces que son útiles para integrar crittercism en su proyecto ...!
http://docs.crittercism.com/ios/ios.html#logging-handled-exceptions
http://www.raywenderlich.com/34050/overview-of-ios-crash-reporting-tools-part-2
@try {
}
@catch (NSException *exc)
{
[Crittercism logHandledException:exc]
}
Consulta esos enlaces y verás que es útil para ti o no ...!
Mike de Crashlytics and Fabric aquí.
Ahora puede capturar NSErrors registrados en su aplicación iOS, tvOS u OS X. Quieres usar:
[CrashlyticsKit recordError:error];
o
Crashlytics.sharedInstance().recordError(error)
Esto le permitirá capturar un número razonable de NSErrors registrados por sesión de usuario. Estos solo se envian en el relanzamiento de la aplicación. Los errores registrados se agrupan por el código y el dominio de error. Esto significa que los problemas de error pueden abarcar muchos sitios de llamadas diferentes.
Ver Documentation
No es posible registrar una excepción detectada en iOS utilizando Crashlytics SDK. CLS_LOG se puede usar para registrar mensajes personalizados, pero estos mensajes de registro irán a Crashlytics solo con los siguientes datos de bloqueo. Si no hay un bloqueo, estos mensajes de registro nunca aterrizarán en el panel de control de Crashlytics. Recibí una confirmación oficial del equipo de soporte de Crashlytics con respecto al mismo. El registro de excepciones capturadas en iOS está allí en su hoja de ruta.
Use las siguientes líneas en el bloque catch para manejar la excepción capturada personalizada
NSUncaughtExceptionHandler *handler = NSGetUncaughtExceptionHandler();
handler(exception);
como se explica para iOS http://support.crashlytics.com/knowledgebase/articles/222764-can-i-use-a-custom-exception-handler