Отправка ошибок на iOS

Чтобы отправить собственное сообщение об ошибке, используйте методы класса AppMetrica и протокола AppMetricaReporting:

  • +reportError:onFailure:
  • +reportError:options:onFailure:
  • +reportNSError:onFailure:
  • +reportNSError:options:onFailure:

Примечание

Эти методы появились в AppMetrica SDK начиная с версии 3.11.1.

Для отправки можно использовать стандартный класс NSError, упрощенный класс AppMetricaError или протокол ErrorRepresentable.

Пример c NSError

Если ошибки отправляются с использованием класса NSError, они группируются по домену domain и коду ошибки code.

NSError *firstError = [NSError errorWithDomain:@"io.appmetrica.error-a"
                                          code:12
                                      userInfo:@{
                                          AMABacktraceErrorKey: NSThread.callStackReturnAddresses,
                                          NSLocalizedDescriptionKey: @"Error A"
                                      }];
[[AMAAppMetricaCrashes crashes] reportNSError:firstError onFailure:nil];
let firstError = NSError(domain: "io.appmetrica.error-a", code: 12, userInfo: [
    BacktraceErrorKey: Thread.callStackReturnAddresses,
    NSLocalizedDescriptionKey: "Error A"
])
AppMetricaCrashes.crashes().report(nserror: firstError)

Пример c AppMetricaError

Если ошибки отправляются с использованием класса AppMetricaError или протокола ErrorRepresentable, они группируются по идентификатору identifier.

AMAError *underlyingError = [AMAError errorWithIdentifier:@"Underlying AMAError"];
AMAError *error = [AMAError errorWithIdentifier:@"AMAError identifier"
                                        message:@"Another custom message"
                                    parameters:@{ @"foo": @"bar" }
                                      backtrace:NSThread.callStackReturnAddresses
                                underlyingError:underlyingError];
[[AMAAppMetricaCrashes crashes] reportError:error onFailure:nil];
let underlyingError = AppMetricaError(identifier: "Underlying AMAError")
let error = AppMetricaError(
    identifier: "AMAError identifier",
    message: "Another custom message",
    parameters: [
        "foo": "bar"
    ],
    backtrace: Thread.callStackReturnAddresses,
    underlyingError: underlyingError
)
AppMetricaCrashes.crashes().report(error: error)

Не используйте переменные значения в качестве идентификатора для группировки. Иначе количество групп будет увеличиваться и их будет сложно анализировать.

Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.

Написать в службу поддержки