Crashlytics iOS – 日志捕获exception

我find了在Crashlytics Android SDK中logging自定义捕获的exception的方法,但是我找不到像iOS SDK那样的东西。 有没有办法loggingiOS上的Crashlytics捕获的exception?

请参阅Android说明: http : //support.crashlytics.com/knowledgebase/articles/202805-logging-caught-exceptions

迈克从Crashlytics和织物在这里。

您现在可以在iOS,tvOS或OS X应用程序中捕获logging的NSErrors。 你想使用:

 [CrashlyticsKit recordError:error]; 

要么

 Crashlytics.sharedInstance().recordError(error) 

这将使您可以捕获每个用户会话logging的NSErrors的相当数量。 这些只在应用程序重新启动时发送。 logging的错误错误按错误域和代码分组。 这意味着错误问题可以跨越许多不同的呼叫站点。

见文档

这是我正在等待的function,并亲自向他们索要(我相信其他人也有这个function)。 他们说他们正在研究/考虑它,但还没有。

编辑

这个function现在在Crashlytics! 你可以loggingNSErrors 🙂

使用Crashlytics SDK在iOS中logging捕获的exception是不可能的。 CLS_LOG可以用来logging自定义消息,但是这些日志消息只会在下一次崩溃数据时才会被发送到Crashlytics。 如果没有崩溃,这些日志消息将永远不会落在Crashlytics仪表板中。 我得到了Crashlytics支持团队的相关正式确认。 iOS中的日志捕获exception在他们的路线图中。

最后Crashlytics添加了所需的function3.5.0!

 [CrashlyticsKit recordError:error]; 

要么

 Crashlytics.sharedInstance().recordError(error) 

参考

 /** * * 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


历史

这实际上不能如我所料:消息被保存到Crashlytics,但只有在应用程序重新启动后,它才会保存最后一条消息。

到目前为止,这里提到的解决scheme都不行。 使用Crashlytics无法在iOS中跟踪处理的exception。


您可以使用它来logging任何exception

 [[Crashlytics sharedInstance] recordCustomExceptionName:@"HandledException" reason:@"Some reason" frameArray:@[]]; 

在Crashlytics中,您将在崩溃报告中看到它,但是却NON-FATALStypes。

事件,如果不是它的意图使用exceptionlogging在Android处理exception的相同方式。

这在版本3.0.7中可用。

recordCustomExceptionName:原因:frameArray:

此方法可用于在报告中logging单个exception结构。 当您的代码与非本地语言(如Lua,C#或Javascript)交互时,这是特别有用的。 这个调用可能很昂贵,只能在进程终止之前使用。 这个API不打算用来loggingNSException对象。 所有可报告的NSExceptions都会被Crashlytics自动捕获。

https://docs.fabric.io/appledocs/Crashlytics/Classes/Crashlytics.html#//api/name/recordCustomExceptionName:reason:frameArray

我已经通过不同的网站,为这个function支持IOS备用Crashlytics。

我发现的批评是迄今为止最好的.. @迪玛我认为这是Crashlytics ..替代它。

这里有一些有用的链接,将项目整合到你的项目中!

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] } 

请参阅这些链接,看看它对你有没有用…!

在catch块中使用下面的行来处理自定义捕获的exception

 NSUncaughtExceptionHandler *handler = NSGetUncaughtExceptionHandler(); handler(exception); 

如iOS所述http://support.crashlytics.com/knowledgebase/articles/222764-can-i-use-a-custom-exception-handler

这将节省您的时间

(错误为NSError,withAdditionalUserInfo:[“User_Id”:0,“User_Name”:“ABC”,“User_Email”:“abc@gmail.com”,“User_Contact”:“789797”])

Interesting Posts