¿Cómo puedo hacer que Crashlytics envíe un logging a su server sin que mi aplicación se bloquee?

¿Cómo puedo hacer que Crashlytics reciba un logging sin que mi aplicación se bloquee? Tengo el siguiente código:

if(!context.managedObjectContext save:&error) { CLS_LOG(@"%@",error.description) } 

Cuando ocurre un error, quiero que el server de Crashlytics reciba el error, pero la aplicación debe seguir ejecutándose.

(No necesito el logging de inmediato. Me encantaría get el logging en el próximo reinicio. Simplemente no quiero tener que desencadenar un locking en mi aplicación para recibir el logging)

es posible?

Con la nueva actualización de crashlytics ahora puede usar:

 [[Crashlytics shanetworkingInstance] recordError:error]; 

Y en Swift:

 Crashlytics.shanetworkingInstance().recordError(error) 

Puede consultar la documentation aquí .

Una pregunta antigua, pero ahora puedes usar Answers que forma parte del traje de Fabric ( Crashlytics forma parte de Fabric ):

introduzca la descripción de la imagen aquí

La tela se puede encontrar aquí. Y más documentation aquí .

Probé las líneas siguientes y funciona como encanto. En el bloque try-catch, usa las siguientes líneas en tu bloque de captura

 @try { // line of code here } @catch (NSException *exception) { NSUncaughtExceptionHandler *handler = NSGetUncaughtExceptionHandler(); handler(exception); } 

como se explica en http://support.crashlytics.com/knowledgebase/articles/222764-can-i-use-a-custom-exception-handler

[ACTUALIZAR]

Ahora, en los crashltics de la tela, podemos usar una function simple [Crashlytics recordCustomExceptionName:reason:frameArray:] para enviar excepciones manejadas.

 @try { // line of code here } @catch (NSException *exception) { NSArray *stack = [exception callStackReturnAddresses]; [[Crashlytics shanetworkingInstance] recordCustomExceptionName: exception.name reason: exception.reason frameArray: stack]; } 

como se explica en https://twittercommunity.com/t/crashlytics-ios-how-to-send-non-fatal-exceptions-without-app-crash/34592/32

En reference a los documentos de Crashlytics.

 try { myMethodThatThrows(); } catch (Exception e) { Crashlytics.logException(e); // handle your exception here! } 

https://docs.fabric.io/android/crashlytics/caught-exceptions.html?caught%20exceptions#caught-exceptions

Crashlytics es un service de seguimiento de fallas, si necesita rastrear posts personalizados, elija otro service de análisis.

Por lo que sé, si no proteges tu código correctamente, tu aplicación se bloqueará de todos modos. Crashlylytics, toma este tipo de fallas y muéstrales en modo "legible" en la aplicación web que han diseñado. Si no hay ningún locking, los crashlots tomarán cualquier cosa. Puede tomar una exception en su código:

 @try{ .... } @catch(NSException ex){...} 

en las partes críticas, pero siempre debe hacer eso si tiene miedo de que su aplicación se bloquee o encuentre un error potencial que pueda permitir que su aplicación tenga un mal comportamiento y actúe. Siempre puede forzar en su exception para enviar o rastrear este error.

Espero eso ayude

El truco es usar lo siguiente:

http://support.crashlytics.com/knowledgebase/articles/202805-logging-caught-exceptions

Solo usa esto:

 Crashlytics.logException(new Exception("my custom log for crashLytics !!!")); 

¡Utilizo esto y obtengo mi crash no fatal en aproximadamente 5 minutos!