iOS Crash Reporting and Error Tracking

iOS Crash Reporting and Error Tracking

Overview

iOS Crash Reporting and Error Tracking is in beta. Upgrade to dd-sdk-ios v1.7.0+ to get access.

Enable iOS Crash Reporting and Error Tracking to get comprehensive crash reports and error trends with Real User Monitoring. With this feature, you get access to:

  • Aggregated iOS crash dashboards and attributes
  • Symbolicated iOS crash reports
  • Trend analysis with iOS error tracking

Setup

Add crash reporting

If you have not set up the SDK yet, follow the in-app setup instructions or refer to the iOS RUM setup documentation.

Add the DatadogCrashReporting dependency to your project. For CocoaPods, use pod 'DatadogSDKCrashReporting'. For SPM and Carthage, DatadogCrashReporting is available with dd-sdk-ios.

Package manager Installation method
CocoaPods Use pod 'DatadogSDKCrashReporting'
Swift Package Manager Link the DatadogCrashReporting module
Carthage Use DatadogCrashReporting.xcframework

Update your initialization snippet to include crash reporting:

import DatadogCrashReporting

Datadog.initialize(
    appContext: .init(),
    trackingConsent: .granted,
    configuration: Datadog.Configuration
    .builderUsing(
        rumApplicationID: "<rum_application_id>",
        clientToken: "<client_token>",
        environment: "<environment_name>"
    )
    .trackUIKitActions()
    .trackUIKitRUMViews()
    .enableCrashReporting(using: DDCrashReportingPlugin())
    .build()
)
Global.rum = RUMMonitor.initialize()

Symbolicate reports using Datadog CI

If your iOS error is unsymbolicated, upload your dSYM file using @datadog/datadog-ci to symbolicate your different stack traces. For any given error, you have access to the file path, the line number, and a code snippet for each frame of the related stack trace.

export DATADOG_API_KEY="<API KEY>"

// if you have a zip file containing dSYMs
npx @datadog/datadog-ci dsyms upload appDsyms.zip

// if you have a folder containing dSYMs
npx @datadog/datadog-ci dsyms upload /path/to/appDsyms/

Note: To configure the tool to use the EU endpoint, set the DATADOG_SITE environment variable to datadoghq.eu. To override the full URL for the intake endpoint, define the DATADOG_DSYM_INTAKE_URL environment variable.

If your application has Bitcode enabled, download your app’s dSYM files on App Store Connect. For more information, see dSYMs commands.

Further Reading