/sentry-dart-plugin

A Dart Build Plugin that uploads debug symbols for Android, iOS/macOS and source maps for Web to Sentry via sentry-cli

Primary LanguageDartMIT LicenseMIT

Sentry Dart Plugin

Sentry Dart Plugin pub package pub points

A Dart Build Plugin that uploads debug symbols for Android, iOS/macOS and source maps for Web to Sentry via sentry-cli.

For doing it manually, please follow our docs.

📋 Install

In your pubspec.yaml, add sentry_dart_plugin as a new dev dependency.

dev_dependencies:
  sentry_dart_plugin: ^1.0.0

Build App

The flutter build apk, flutter build ios (or macos) or flutter build web is required before executing the sentry_dart_plugin plugin, because the build spits out the debug symbols and source maps.

Run

Dart

dart run sentry_dart_plugin

Flutter

flutter packages pub run sentry_dart_plugin

Configuration (Optional)

This tool comes with a default configuration. You can configure it to suit your needs.

Add sentry: configuration at the end of your pubspec.yaml file:

sentry:
  upload_debug_symbols: true
  upload_source_maps: false
  upload_sources: false
  project: ...
  org: ...
  auth_token: ...
  url: ...
  wait_for_processing: false
  log_level: error # possible values: trace, debug, info, warn, error
  release: ...
  dist: ...
  web_build_path: ...
  commits: auto
  ignore_missing: true

Available Configuration Fields

Configuration Name Description Default Value And Type Required Alternative Environment variable
upload_debug_symbols Enables or disables the automatic upload of debug symbols true (boolean) no -
upload_source_maps Enables or disables the automatic upload of source maps false (boolean) no -
upload_sources Does or doesn't include the source code of native code false (boolean) no -
project Project's name e.g. sentry-flutter (string) yes SENTRY_PROJECT
org Organization's slug e.g. sentry-sdks (string) yes SENTRY_ORG
auth_token Auth Token e.g. 64 random characteres (string) yes SENTRY_AUTH_TOKEN
url URL e.g. https://mysentry.invalid/ (string) no SENTRY_URL
wait_for_processing Wait for server-side processing of uploaded files false (boolean) no -
log_level Configures the log level for sentry-cli warn (string) no SENTRY_LOG_LEVEL
release The release version for source maps, it should match the release set by the SDK default: name@version from pubspec (string) no SENTRY_RELEASE
dist The dist/build number for source maps, it should match the dist set by the SDK default: the number after the '+' char from 'version' pubspec (string) no SENTRY_DIST
web_build_path The web build folder default: build/web (string) no -
commits Release commits integration default: auto no -
ignore_missing Ignore missing commits previously used in the release default: false no -
sentry_cli_cdn_url Alternative place to download sentry-cli default: https://downloads.sentry-cdn.com/sentry-cli/ no SENTRYCLI_CDNURL
sentry_cli_save_dir Alternative place to save sentry-cli binary default: .dart_tool/pub/bin/sentry_dart_plugin no SENTRYCLI_SAVE_DIR

Troubleshooting

Sentry's auth_token requires the project:releases or project:write scope, See docs.

For the commits feature, Sentry's auth_token also requires the org:read scope, See docs.

Dart's --obfuscate option is required to be paired with --split-debug-info to generate a symbol map, See docs.

The --split-debug-info option requires setting a output directory, the directory must be an inner folder of the project's folder, See docs.

Flutter's build web command requires setting the --source-maps parameter to generate source maps, See Issue