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-beta.1The 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_pluginflutter packages pub run sentry_dart_pluginThis 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_native_symbols: true
upload_source_maps: false
include_native_sources: false
project: ...
org: ...
auth_token: ...
url: ...
wait_for_processing: false
log_level: error # possible values: trace, debug, info, warn, error
release: ...
web_build_path: ...| Configuration Name | Description | Default Value And Type | Required | Alternative Environment variable |
|---|---|---|---|---|
| upload_native_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 | - |
| include_native_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 | - |
| web_build_path | The web build folder | default: build/web (string) | no | - |
Sentry's auth_token requires the project:releases or project:write 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.
The --split-debug-info and --obfuscate are not supported for iOS and Desktop Apps yet, See docs