- About the service
- Changelog
- A/B experiments in Varioqub
- Managing app access
Working with reports Working with the API Support and troubleshooting
Sending errors on iOS
To send your own error message, use the YMMYandexMetrica
class and YMMYandexMetricaReporting
protocol methods:
+reportError:onFailure:
+reportError:options:onFailure:
+reportNSError:onFailure:
+reportNSError:options:onFailure:
Note
These methods are supported since AppMetrica SDK version 3.11.1.
To send error messages, you can use the standard NSError class, the simplified YMMError
class, or the YMMErrorRepresentable
protocol.
Example with NSError
If errors are sent using the NSError class, they're grouped by the domain domain and the code error code.
Objective-CSwift
NSError *firstError = [NSError errorWithDomain:@"com.yandex.error-a" code:12 userInfo:@{ YMMBacktraceErrorKey: NSThread.callStackReturnAddresses, NSLocalizedDescriptionKey: @"Error A" }]; [YMMYandexMetrica reportNSError:firstError onFailure:nil];
let firstError = NSError(domain: "com.yandex.error-a", code: 12, userInfo: [ YMMBacktraceErrorKey: Thread.callStackReturnAddresses, NSLocalizedDescriptionKey: "Error A" ]) YMMYandexMetrica.report(nserror: firstError, onFailure: nil)
Example with YMMError
If errors are sent using the
YMMError
class or theYMMErrorRepresentable
protocol, they're grouped by theidentifier
ID.Objective-CSwift
YMMError *underlyingError = [YMMError errorWithIdentifier:@"Underlying YMMError"]; YMMError *error = [YMMError errorWithIdentifier:@"YMMError identifier" message:@"Another custom message" parameters:@{ @"foo": @"bar" } backtrace:NSThread.callStackReturnAddresses underlyingError:underlyingError]; [YMMYandexMetrica reportError:error onFailure:nil];
let underlyingError = YMMError.init(identifier: "Underlying YMMError") let error = YMMError( identifier: "YMMError identifier", message: "Another custom message", parameters: [ "foo": "bar" ], backtrace: Thread.callStackReturnAddresses, underlyingError: underlyingError) YMMYandexMetrica.report(error: error, onFailure: nil)
Don't use variable values as grouping IDs. Otherwise, the number of groups increases and it becomes difficult to analyze them.
If you didn't find the answer you were looking for, you can use the feedback form to submit your question. Please describe the problem in as much detail as possible. Attach a screenshot if possible.