向Crashlytics发送日志,而不会造成应用程序崩溃
如何让Crashlytics在没有我的应用程序崩溃的情况下接收日志? 我有以下代码:
if(!context.managedObjectContext save:&error) { CLS_LOG(@"%@",error.description) }
发生错误时,我想Crashlytics服务器收到错误,但应用程序应继续运行。
我不需要马上login。 我很乐意在下次重启时获得日志。 我只是不想在我的应用程序中触发崩溃来接收日志。
这可能吗?
随着crashlytics的新更新,你现在可以使用:
[[Crashlytics sharedInstance] recordError:error];
而在Swift中:
Crashlytics.sharedInstance().recordError(error)
你可以在这里查看文档。
有一个老问题,但现在你可以使用作为Fabric
服装一部分的Answers
( Crashlytics
也是Fabric
一部分):
面料可以在这里find。 在这里进一步的文档。
我尝试了下面的方法,它的作用就像魅力一样。 在try-catch块中,在catch块中使用下面的行
@try { // line of code here } @catch (NSException *exception) { NSUncaughtExceptionHandler *handler = NSGetUncaughtExceptionHandler(); handler(exception); }
正如http://support.crashlytics.com/knowledgebase/articles/222764-can-i-use-a-custom-exception-handler
[UPDATE]
现在在fabric的crashlytics中,我们可以使用简单的函数[Crashlytics recordCustomExceptionName:reason:frameArray:]
来发送处理的exception
@try { // line of code here } @catch (NSException *exception) { NSArray *stack = [exception callStackReturnAddresses]; [[Crashlytics sharedInstance] recordCustomExceptionName: exception.name reason: exception.reason frameArray: stack]; }
参考Crashlytics文件。
try { myMethodThatThrows(); } catch (Exception e) { Crashlytics.logException(e); // handle your exception here! }
据我所知,如果你不正确地保护你的代码,你的应用程序将会崩溃。 Crashlylytics,把这个崩溃,并在他们devise的Web应用程序中以“可读”模式显示给你。 如果没有崩溃,crashlytics将采取任何事情。 你可以在代码中获取一个exception:
@try{ .... } @catch(NSException ex){...}
在关键的部分,但是如果你害怕你的应用程序崩溃或者你发现了一个潜在的错误,那么你应该总是这样做,这会使你的应用程序有一个不好的行为, 您可以随时强制发送或跟踪此错误。
希望能帮助到你
Crashlytics是一款碰撞跟踪服务,如果您需要跟踪自定义消息,请select其他的分析服务。
诀窍是使用以下内容:
http://support.crashlytics.com/knowledgebase/articles/202805-logging-caught-exceptions
只需使用这个:
Crashlytics.logException(new Exception("my custom log for crashLytics !!!"));
我用这个,大概5分钟就可以得到非致命的崩溃!