Skip to content

Fatal Issues and Crashes

Beta

This feature is currently experimental. APIs and behavior may change in future releases.

The Capture SDK can automatically detect, capture, and upload fatal issues and crashes that affect your app.

See the Product > Issues Feature Guide to learn more about how to navigate this information in the product.

Setup

Initialization requires toggling a flag (enableFatalIssueReporting) passed into Logger.start()

Kotlin
Logger.start(
  configuration = Configuration(enableFatalIssueReporting = true),
)
Java
boolean enableFatalIssueReporting = true;
Logger.start(
  new Configuration(
      new SessionReplayConfiguration(),
      enableFatalIssueReporting);
);
Swift
Logger.start(
  configuration: Capture.Configuration(enableFatalIssueReporting: true),
)

Note

Fatal issue reports on iOS are uploaded only for actual devices and not simulators

Objective-C
#import <Capture/Capture.h>

CAPConfiguration *config = [[CAPConfiguration alloc]
  initWithEnableFatalIssueReporting:YES
  enableURLSessionIntegration:YES];

[CAPLogger
  startWithAPIKey:@"your-api-key"
  sessionStrategy: [CAPSessionStrategy activityBased]
  configuration:config];

Note

Fatal issue reports on iOS are uploaded only for actual devices and not simulators

Info

Fatal issue reports and their session information are uploaded automatically and do not require a workflow to be running.

Uploading Debug Information Files

To generate human readable stack traces, bitdrift needs your apps' debug information files.

bd cli tool

Our command-line tool makes it easy to upload debug information files to bitdrift.

Installation

Homebrew (macOS)

To install the CLI directly on your Mac, use Homebrew:

Bash
brew tap bitdriftlabs/bd
brew install bd
Direct Download

Direct downloads for other platforms are also available, which are especially useful for integrating into your CI or release process.

Info

Latest version of bd-cli is 0.1.33-rc.1

Usage

Bash
bd debug-files upload-proguard 
  --api-key <API_KEY>
  --app-id <APP_ID>
  --app-version <APP_VERSION>
  --version-code <VERSION_CODE>
  <PROGUARD_MAPPING_FILE>
Bash
bd debug-files upload 
  --api-key <API_KEY>
  <DSYM_FILE_OR_DIRECTORY

Gradle Tasks

Starting with version 0.17.28, symbol upload can also be done via gradle tasks. To enable them, you must first enable the capture plugin at build time in your build.gradle file:

Kotlin
plugins {
    id("io.bitdrift.capture-plugin") version "<version>"
}
Groovy
plugins {
    id 'io.bitdrift.capture-plugin' version '<version>'
}

The bdUpload gradle tasks will now be available under the "Upload" group:

Text Only
Upload tasks
------------
bdUpload - Upload all symbol and mapping files to Bitdrift
bdUploadMapping - Upload mapping to Bitdrift
bdUploadSymbols - Upload symbols to Bitdrift

Note: You must set the API_KEY environment variable to call these tasks:

Bash
API_KEY=MY-API-KEY ./gradlew bdUploadMapping

or:

Bash
export API_KEY=MY-API-KEY
./gradlew bdUploadMapping