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