Отправка ошибок на iOS
Чтобы отправить собственное сообщение об ошибке, используйте методы класса YMMYandexMetrica и протокола YMMYandexMetricaReporting:
Примечание. Эти методы появились в AppMetrica SDK начиная с версии 3.11.1.
Для отправки можно использовать стандартный класс NSError, упрощенный класс YMMError или протокол YMMErrorRepresentable.
Пример c NSError
Если ошибки отправляются с использованием класса NSError, они группируются по домену domain и коду ошибки code.
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)
Скопировано
Пример c YMMError
Если ошибки отправляются с использованием класса YMMError или протокола YMMErrorRepresentable, они группируются по идентификатору identifier.
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)
Скопировано
Не используйте переменные значения в качестве идентификатора для группировки. Иначе количество групп будет увеличиваться и их будет сложно анализировать.