Finally Crashlytics added the desired feature 3.5.0!!
[CrashlyticsKit recordError:error];
or
Crashlytics.sharedInstance().recordError(error)
Reference
/**
*
* 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
HISTORY
This actually doesn't work as I expected: The message is saved into Crashlytics but only after the app is restarted and it will only save the last message.
So far non of the solutions mentioned here works. There is no way to track handled exceptions in iOS using Crashlytics.
You can use this to log any exception
[[Crashlytics sharedInstance] recordCustomExceptionName:@"HandledException" reason:@"Some reason" frameArray:@[]];
In Crashlytics you'll see it in the crash report but with the NON-FATALS
type.
Event if it's not it's intended usage exceptions are logged in the same way Android handled exceptions are.
This is available in version 3.0.7.
recordCustomExceptionName:reason:frameArray:
This method can be used to record a single exception structure in a report. This is particularly useful when your code interacts with non-native languages like Lua, C#, or Javascript. This call can be expensive and should only be used shortly before process termination. This API is not intended be to used to log NSException objects. All safely-reportable NSExceptions are automatically captured by Crashlytics.
https://docs.fabric.io/appledocs/Crashlytics/Classes/Crashlytics.html#//api/name/recordCustomExceptionName:reason:frameArray: