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.
In your pubspec.yaml
, add sentry_dart_plugin
as a new dev dependency.
dev_dependencies:
sentry_dart_plugin: ^1.0.0
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.
dart run sentry_dart_plugin
flutter packages pub run sentry_dart_plugin
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
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 |
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