- SentryUserInteractionWidget: add support for PopupMenuButton and PopupMenuItem (#1361)
- Fix
SentryUserInteractionWidget
throwing when Sentry is not enabled (#1363)
- Sanitize sensitive data from URLs (span desc, span data, crumbs, client errors) (#1327)
- Sync missing properties to the Native SDKs (#1354)
- sqflite Support for Flutter (#1306)
DioErrorExtractor
no longer extractsDioError.stackTrace
which is done viaDioStackTraceExtractor
instead (#1344)- LoadImageListIntegration won't throw bad state if there is no exceptions in the event (#1347)
- Exception StackTrace Extractor (#1335)
- SentryUserInteractionWidget checks if the Elements are mounted before comparing them (#1339)
- Platform Exception Event Processor (#1297)
- Support failedRequestTargets for HTTP Client errors (#1285)
- Captures errors for the default range
500-599
ifcaptureFailedRequests
is enabled
- Captures errors for the default range
- Sentry Isolate Extension (#1266)
- Allow sentry user to control resolution of captured Flutter screenshots (#1288)
- Support beforeSendTransaction (#1238)
- Add In Foreground to App context (#1260)
- Error Cause Extractor (#1198, #1236)
- Add
throwable
toSentryException
- Add
- Dart 3 Support (#1220)
- Introduce
Hint
data bag (#1136) - Use
Hint
for screenshots (#1165) - Support custom units for custom measurements (#1181)
- Replace
toImage
withtoImageSync
for Flutter >= 3.7 (1268) - Don't await
FutureOr<T>
if it's not a future. This should marginally improve the performance (#1310) - Replace
StackTrace.empty
withStackTrace.current
(#1183)
- Enable enableNdkScopeSync by default (#1276)
- Update
sentry_dio
to dio v5 (#1282) - Remove deprecated fields (#1227)
- Remove deprecated fields from the
Scope
class.user(SentryUser? user)
, using thesetUser(SentryUser? user)
instead.attachements
, using theattachments
instead.
- Remove deprecated field from the
SentryFlutterOptions
class.anrTimeoutIntervalMillis
, using theanrTimeoutInterval
instead.autoSessionTrackingIntervalMillis
, using theautoSessionTrackingInterval
instead.
- Remove deprecated fields from the
- Rename APM tracking feature flags to tracing (#1222)
- Rename
- enableAutoPerformanceTracking to enableAutoPerformanceTracing
- enableOutOfMemoryTracking to enableWatchdogTerminationTracking
- Rename
- Enable APM features by default (#1217)
- Enable by default
- captureFailedRequests
- enableStructuredDataTracing
- enableUserInteractionTracing
- Enable by default
- Mark transaction as internal_error in case of unhandled errors (#1218)
- Removed various deprecated fields (#1036):
- Removed the following fields from the
device
context- language
- timezone
- screenResolution
- theme
- Removed isolate name from Dart context. It's now reported via the threads interface. It can be enabled via
options.attachThreads
- Removed the following fields from the
- Use
sentryClientName
instead ofsdk.identifier
(#1135) - Refactor
BindingUtils
toBindingWrapper
to enable the use of custom bindings (#1184) - Bump Flutter min to 3.0.0 and Dart to 2.17.0 (#1180)
- View hierarchy reads size from RenderBox only (#1258)
- Try to avoid ConcurrentModificationError by not using a Future.forEach (#1259)
- isWeb check for WASM (#1249)
- Don't suppress error logs (#1228)
- Fix: Remove
SentryOptions
related parameters from classes which also takeHub
as a parameter (#816)
- Platform Exception Event Processor (#1297)
- Support failedRequestTargets for HTTP Client errors (#1285)
- Captures errors for the default range
500-599
ifcaptureFailedRequests
is enabled
- Captures errors for the default range
- Sentry Isolate Extension (#1266)
- Allow sentry user to control resolution of captured Flutter screenshots (#1288)
- Replace
toImage
withtoImageSync
for Flutter >= 3.7 (1268) - Don't await
FutureOr<T>
if it's not a future. This should marginally improve the performance (#1310)
- Add proguard_uui property to SentryFlutterOptions to set proguard information at runtime (#1312)
- Change podspec
EXCLUDED_ARCHS
value to allow podfiles to add more excluded architetures (#1303)
- Implement
loadStructuredBinaryData
from updated AssetBundle (#1272)
- Pass processed Breadcrumb to scope observer (#1298)
- Remove duplicated breadcrumbs when syncing with iOS/macOS (#1283)
- Set client name with version in Android SDK (#1274)
- View hierarchy reads size from RenderBox only (#1258)
- Try to avoid ConcurrentModificationError by not using a Future.forEach (#1259)
- isWeb check for WASM (#1249)
- Remove deprecated fields (#1227)
- Remove deprecated fields from the
Scope
class.user(SentryUser? user)
, using thesetUser(SentryUser? user)
instead.attachements
, using theattachments
instead.
- Remove deprecated field from the
SentryFlutterOptions
class.anrTimeoutIntervalMillis
, using theanrTimeoutInterval
instead.autoSessionTrackingIntervalMillis
, using theautoSessionTrackingInterval
instead.
- Remove deprecated fields from the
- Rename APM tracking feature flags to tracing (#1222)
- Rename
- enableAutoPerformanceTracking to enableAutoPerformanceTracing
- enableOutOfMemoryTracking to enableWatchdogTerminationTracking
- Rename
- Migrate to sentry cocoa v8 (#1197)
- Dart 3 Support (#1220)
- Enable APM features by default (#1217)
- Enable by default
- captureFailedRequests
- enableStructuredDataTracing
- enableUserInteractionTracing
- Enable by default
- Mark transaction as internal_error in case of unhandled errors (#1218)
- Feat: Introduce
Hint
data bag (#1136) - Feat: Use
Hint
for screenshots (#1165) - Feat: Support custom units for custom measurements (#1181)
- Fix: Remove
SentryOptions
related parameters from classes which also takeHub
as a parameter (#816)
- Enha: Replace
StackTrace.empty
withStackTrace.current
(#1183)
- Removed various deprecated fields (#1036):
- Removed the following fields from the
device
context- language
- timezone
- screenResolution
- theme
- Removed isolate name from Dart context. It's now reported via the threads interface. It can be enabled via
options.attachThreads
- Removed the following fields from the
- Use
sentryClientName
instead ofsdk.identifier
(#1135) - Refactor
BindingUtils
toBindingWrapper
to enable the use of custom bindings (#1184) - Bump Flutter min to 3.0.0 and Dart to 2.17.0 (#1180)
- intl is now more version permissive (>=0.17.0 <1.0.0) (#1247)
- sentry_file now requires Dart >= 2.19 (#1240)
- Fix Pod target for iOS (#1237)
- enableUserInteractionTracing sometimes finds the wrong widget (#1212)
- Only call method channels on native platforms (#1196)
- Bump Android SDK from v6.9.2 to v6.11.0 (#1194, #1209)
- Bump Cocoa SDK from v7.31.3 to v7.31.5 (#1190, #1207)
- Missing slow and frozen frames for Auto transactions (#1172)
- Tracing for File IO integration (#1160)
- Capture Future errors for Flutter Web automatically (#1152)
- User Interaction transactions and breadcrumbs (#1137)
- Do not attach headers if Span is NoOp (#1143)
- Add request context to
HttpException
,SocketException
andNetworkImageLoadException
(#1118) SocketException
andFileSystemException
withOSError
s report theOSError
as root exception (#1118)
- VendorId should be a String (#1112)
- Disable
enableUserInteractionBreadcrumbs
on Android whenenableAutoNativeBreadcrumbs
is disabled (#1131) - Transaction name is reset after the transaction finishes (#1125)
- Bump Cocoa SDK from v7.30.2 to v7.31.1 (#1132, #1139)
- Bump Android SDK from v6.7.0 to v6.7.1 (#1112)
- Feat: Screenshot Attachment (#1088)
- Merging of integrations and packages (#1111)
- Add missing
fragment
for HTTP Client Errors (#1102) - Sync user name and geo for Android (#1102)
- Add mechanism to Dio Http Client error (#1114)
- Capture response information in
SentryHttpClient
(#1095)
- Remove experimental
SentryResponse
fields:url
,body
,redirected
,status
(#1095) SentryHttpClient
request body capture checks default PII capture setting, same as the DIO integration (#1095)
- Bump Android SDK from v6.5.0 to v6.6.0 (#1090)
- Bump Cocoa SDK from v7.28.0 to v7.30.0 (#1089, #1101)
- Avoid dependency conflict with package_info_plus v3 (#1084)
- Use PlatformDispatcher.onError in Flutter 3.3 (#1039)
- Bring protocol up to date with latest Sentry protocol (#1038)
- Avoid dependency conflict with package_info_plus v2 (#1068)
- Handle traces sampler exception (#1040)
- tracePropagationTargets ignores invalid Regex (#1043)
- SentryDevice cast error (#1059)
- Added Flutter renderer information to events (#1035)
- Added missing DSN field into the SentryEnvelopeHeader (#1050)
- Tracer does not allow setting measurement if finished (#1026)
- Add missing measurements units (#1033)
- Scope cloning method was not setting the user (#1013)
- Prepare future support for iOS and macOS obfuscated app symbolication using dSYM (requires Flutter
master
channel) (#823) - Bump Android SDK from v6.3.1 to v6.4.2 (#989, #1009)
- Bump Cocoa SDK from v7.23.0 to v7.25.1 (#993, #996, #1000, #1007)
- Dynamic sampling (#1004)
- Scope.clone incorrectly accesses tags (#978)
- beforeBreadcrumb was not adding the mutated breadcrumb (#982)
- Bump Flutter's min. supported version from 1.17.0 to 2.0.0 (#966)
This should not break anything since the Dart's min. version is already 2.12.0 and Flutter 2.0.0 uses Dart 2.12.0
- Back compatibility of Object.hash for Dart 2.12.0 (#966)
- Fix back compatibility for OnErrorIntegration integration (#965)
Scope#setContexts
pasing a List value would't not work (#932)
- Add integration for
PlatformDispatcher.onError
(#915)
- Missing OS context for iOS events (#958)
- Fix:
Scope#clone
calls the Native bridges again via thescopeObserver
(#959)
- Dio Integration adds response data (#934)
- Maps with Key Object, Object would fail during serialization if not String, Object (#935)
- Breadcrumbs "Concurrent Modification" (#948)
- Duplicative Screen size changed breadcrumbs (#888)
- Duplicated Android Breadcrumbs with no Mechanism (#954)
- Fix windows native method need default result (#943)
- Add request instead of response data to
SentryRequest
inDioEventProcessor
#933
- Context Escape with ScopeCallback (#925)
- Send DidBecomeActiveNotification when OOM enabled (#905)
dio.addSentry
hangs ifdsn
is empty and SDK NoOp (#920)- addBreadcrumb throws on Android API < 24 because of NewApi usage (#923)
sentry_dio
is promoted to GA and not experimental anymore (#914)
- Filter out app starts with more than 60s (#895)
- Bump: Sentry-Cocoa to 7.18.0 and Sentry-Android to 6.1.2 (#892)
- Fix: Add missing iOS contexts (#761)
- Fix serialization of threads (#844)
- Fix:
SentryAssetBundle
on Flutter >= 3.1 (#877)
- Feat: Client Reports (#829)
- Feat: Allow manual init of the Native SDK (#765)
- Feat: Attach Isolate name to thread context (#847)
- Feat: Add Android thread to platform stacktraces (#853)
- Feat: Sync Scope to Native (#858)
- Starting with version
6.6.0
ofsentry
, Sentry's version >= v21.9.0 is required or you have to manually disable sending client reports via thesendClientReports
option. This only applies to self-hosted Sentry. If you are using sentry.io, no action is needed.
- Bump: Sentry-Cocoa to 7.17.0 and Sentry-Android to 6.1.1 (#891)
- Bump: Sentry-Cocoa to 7.16.1 (#886)
- Fix: Add user setter back in the scope (#883)
- Fix: clear method sets all properties synchronously (#882)
- Feat: Sync Scope to Native (#858)
- Feat: Attach Isolate name to thread context (#847)
- Fix:
SentryAssetBundle
on Flutter >= 3.1 (#877) - Feat: Add Android thread to platform stacktraces (#853)
- Fix: Rename auto initialize property (#857)
- Bump: Sentry-Android to 6.0.0 (#879)
- Fix serialization of threads (#844)
- Feat: Allow manual init of the Native SDK (#765)
- Feat: Client Reports (#829)
- Fix: Add missing iOS contexts (#761)
- Starting with version
6.6.0
ofsentry
, Sentry's version >= v21.9.0 is required or you have to manually disable sending client reports via thesendClientReports
option. This only applies to self-hosted Sentry. If you are using sentry.io, no action is needed.
- Update event contexts (#838)
- No documented changes.
- Fix: Do not set the transaction to scope if no op (#828)
- No documented changes.
- Feat: Support for platform stacktraces on Android (#788)
- Bump: Sentry-Android to 5.7.0 and Sentry-Cocoa to 7.11.0 (#796)
- Fix: Dio event processor safelly bails if no DioError in the exception list (#795)
- Feat: Mobile Vitals - Native App Start (#749)
- Feat: Mobile Vitals - Native Frames (#772)
- Fix: Missing userId on iOS when userId is not set (#782) by @marandaneto
- Allow to set startTimestamp & endTimestamp manually to SentrySpan (#676) by @fatihergin
- Feat: Allow to set startTimestamp & endTimestamp manually to SentrySpan (#676)
- Bump: Sentry-Cocoa to 7.10.0 (#777)
- Feat: Additional Dart/Flutter context information (#778)
- Bump: Kotlin plugin to 1.5.31 (#763)
- Fix: Missing userId on iOS when userId is not set (#782)
- No documented changes.
- Fix: Disable log by default in debug mode (#753)
- [Dio] Ref: Replace FailedRequestAdapter with FailedRequestInterceptor (#728)
- Fix: Add missing return values - dart analyzer (#742)
- Feat: Add
DioEventProcessor
which improves DioError crash reports (#718) - Fix: Do not report duplicated packages and integrations (#760)
- Feat: Allow manual init of the Native SDK or no Native SDK at all (#765)
- Feat: Support maxSpan for performance API and expose SentryOptions through Hub (#716)
- Fix: await ZonedGuard integration to run (#732)
- Fix:
sentry_logging
incorrectly setting SDK name (#725) - Bump: Sentry-Android to 5.6.1 and Sentry-Cocoa to 7.9.0 (#736)
- Feat: Support Attachment.addToTransactions (#709)
- Fix: captureTransaction should return emptyId when transaction is discarded (#713)
- Add
SentryAssetBundle
for automatic spans for asset loading (#685) - Fix:
maxRequestBodySize
should benever
by default when using the FailedRequestClientAdapter directly (#701) - Feat: Add support for Dio (#688)
- Fix: Use correct data/extras type in tracer (#693)
- Fix: Do not throw when Throwable type is not supported for associating errors to a transaction (#692)
- Feat: Automatically create transactions when navigating between screens (#643)
- Feat: Support Attachment.addToTransactions (#709)
- Fix: captureTransaction should return emptyId when transaction is discarded (#713)
- Feat: Auto transactions duration trimming (#702)
- Add
SentryAssetBundle
for automatic spans for asset loading (#685) - Feat: Configure idle transaction duration (#705)
- Fix:
maxRequestBodySize
should benever
by default when using the FailedRequestClientAdapter directly (#701)
- Feat: Improve configuration options of
SentryNavigatorObserver
(#684) - Feat: Add support for Dio (#688)
- Bump: Sentry-Android to 5.5.2 and Sentry-Cocoa to 7.8.0 (#696)
- Enha: Replace flutter default root name '/' with 'root' (#678)
- Fix: Use 'navigation' instead of 'ui.load' for auto transaction operation (#675)
- Fix: Use correct data/extras type in tracer (#693)
- Fix: Do not throw when Throwable type is not supported for associating errors to a transaction (#692)
- Feat: Automatically create transactions when navigating between screens (#643)
- Fix: ConcurrentModificationError in when finishing span (#664)
- Feat: Add enableNdkScopeSync Android support (#665)
- Fix:
sentry_logging
works now on web (#660) - Fix:
sentry_logging
timestamps are in UTC (#660) - Fix:
sentry_logging
Level.Off is never recorded (#660) - Fix: Rate limiting fallback to retryAfterHeader (#658)
- Feat: Integration for
logging
(#631) - Feat: Add logger name to
SentryLogger
and send errors in integrations to the registered logger (#641)
- Fix: Remove is Enum check to support older Dart versions (#635)
- Fix: Transaction serialization if not encodable (#633)
- Bump: Sentry-Android to 5.3.0 and Sentry-Cocoa to 7.5.1 (#629)
- Fix: event.origin tag for macOS and other Apple platforms (#622)
- Feat: Add current route as transaction (#615)
- Feat: Add Breadcrumbs for Flutters
debugPrint
(#618) - Feat: Enrich Dart context with isolate name (#600)
- Feat: Sentry Performance for HTTP client (#603)
- Performance API for Dart/Flutter (#530)
SentryEvent
inherits from theSentryEventLike
mixinScope#transaction
sets and reads from theScope#span
object if bound to the Scope
- Feat: Add current route as transaction (#615)
- Feat: Add Breadcrumbs for Flutters
debugPrint
(#618)
- Bump Sentry Android SDK to 5.2.0 (#594)
- Feat: Enrich Dart context with isolate name (#600)
- Feat: Sentry Performance for HTTP client (#603)
- Performance API for Dart/Flutter (#530)
SentryEvent
inherits from theSentryEventLike
mixinScope#transaction
sets and reads from theScope#span
object if bound to the Scope
- Fix: Set custom SentryHttpClientError when HTTP error is captured without an exception (#580)
- Bump: Android AGP 4.1 (#586)
- Bump: Sentry Cocoa to 7.3.0 (#589)
- Fix: Update
SentryUser
according to docs (#561) - Feat: Enable or disable reporting of packages (#563)
- Bump: Sentry-Cocoa to 7.2.7 (#578)
- Bump: Sentry-Android to 5.1.2 (#578)
- Fix: Read Sentry config from environment variables as fallback (#567)
- Feat: Lists of exceptions and threads (#524)
- Feat: Collect more information for exceptions collected via
FlutterError.onError
(#538) - Feat: Add maxAttachmentSize option (#553)
- Feat: HTTP breadcrumbs have the request & response size if available (#552)
- Fix: Re-initialization of Flutter SDK (#526)
- Enhancement: Call
toString()
on all non-serializable fields (#528) - Fix: Always call
Flutter.onError
in order to not swallow messages (#533) - Bump: Android SDK to 5.1.0-beta.6 (#535)
- Fix: Serialization of Flutter Context (#520)
- Feat: Add support for attachments (#505)
- Feat: Add support for User Feedback (#506)
- Feat: Browser detection (#502)
- Feat: Enrich events with more context (#452)
- Feat: Add Culture Context (#491)
- Feat: Add DeduplicationEventProcessor (#498)
- Feat: Capture failed requests as event (#473)
- Feat:
beforeSend
callback accepts async code (#494)
- Ref: EventProcessor changed to an interface (#489)
- Feat: Support envelope based transport for events (#391)
- The method signature of
Transport
changed fromFuture<SentryId> send(SentryEvent event)
toFuture<SentryId> send(SentryEnvelope envelope)
- The method signature of
- Remove
Sentry.currentHub
(#490) - Ref: Rename
cacheDirSize
tomaxCacheItems
and addmaxCacheItems
for iOS (#495) - Ref: Add error and stacktrace parameter to logger (#503)
- Feat: Change timespans to Durations in SentryOptions (#504)
- Feat:
beforeSend
callback accepts async code (#494)
- Since version
6.0.0
of thesentry
, Sentry's version >= v20.6.0 is required. This only applies to on-premise Sentry, if you are using sentry.io no action is needed.
- Fix: Merge user from event and scope (#467)
- Feature: Allow setting of default values for in-app-frames via
SentryOptions.considerInAppFramesByDefault
(#482) - Bump: sentry-android to v5.0.1 (#486)
- Bump: Sentry-Cocoa to 7.1.3 for iOS and macOS (#488)
- Fix:
Sentry.close()
closes native SDK integrations (#388) - Feat: Support for macOS (#389)
- Feat: Support for Linux (#402)
- Feat: Support for Windows (#407)
- Fix: Mark
Sentry.currentHub
as deprecated (#406) - Fix: Set console logger as default logger in debug mode (#413)
- Fix: Use name from pubspec.yaml for release if package id is not available (#411)
- Feat:
SentryHttpClient
tracks the duration which a request takes and logs failed requests (#414) - Bump: sentry-cocoa to v7.0.0 (#424)
- Feat: Support for Out-of-Memory-Tracking on macOS/iOS (#424)
- Fix: Trim
\u0000
from Windows package info (#420) - Feature: Log calls to
print()
as Breadcrumbs (#439) - Fix:
dist
was read fromSENTRY_DSN
, now it's read fromSENTRY_DIST
(#442) - Bump: sentry-cocoa to v7.0.3 (#445)
- Fix: Fix adding integrations on web (#450)
- Fix: Use
log()
instead ofprint()
for SDK logging (#453) - Bump: sentry-android to v5.0.0-beta.2 (#457)
- Feature: Add
withScope
callback to capture methods (#463) - Fix: Add missing properties
language
,screenHeightPixels
andscreenWidthPixels
toSentryDevice
(#465)
- This version of the
sentry
Dart package requires Sentry server >= v20.6.0. This only applies to on-premise Sentry, if you are using sentry.io no action is needed.
- Sound null safety
- Fix: event.origin and event.environment tags have wrong value for iOS (#365) and (#369)
- Fix: Fix deprecated
registrar.messenger
call inSentryFlutterWeb
(#364) - Fix: Enable breadcrumb recording mechanism based on platform (#366)
- Feat: Send default PII options (#360)
- Bump: sentry-cocoa to v6.2.1 (#360)
- Feat: Migration from
package_info
topackage_info_plus
plugin (#370) - Fix: Set
SentryOptions.debug
insentry
(#376) - Fix: Read all environment variables in
sentry
(#375)
- Return type of
Sentry.close()
changed fromvoid
toFuture<void>
andIntegration.close()
changed fromvoid
toFutureOr<void>
(#395) - Remove deprecated member
enableLifecycleBreadcrumbs
. UseenableAppLifecycleBreadcrumbs
instead. (#366)
- Bump: sentry-android to v4.3.0 (#343)
- Fix: Multiple FlutterError.onError calls in FlutterErrorIntegration (#345)
- Fix: Pass hint to EventProcessors (#356)
- Fix: EventProcessors were not dropping events when returning null (#353)
- Fix: Plugin Registrant class moved to barrel file (#358)
- This changed the import from
import 'package:sentry_flutter/src/sentry_flutter_web.dart';
toimport 'package:sentry_flutter/sentry_flutter_web.dart';
- This could lead to breaking changes. Typically it shouldn't because the referencing file is auto-generated.
- This changed the import from
- Fix: Prefix classes with Sentry (#357)
- A couple of classes were often conflicting with user's code.
Thus this change renames the following classes:
App
->SentryApp
Browser
->SentryBrowser
Device
->SentryDevice
Gpu
->SentryGpu
Integration
->SentryIntegration
Message
->SentryMessage
OperatingSystem
->SentryOperatingSystem
Request
->SentryRequest
User
->SentryUser
Orientation
->SentryOrientation
- A couple of classes were often conflicting with user's code.
Thus this change renames the following classes:
- Fix: Do not append stack trace to the exception if there are no frames
- Fix: Empty DSN disables the SDK and runs the App
- Feat: sentry and sentry_flutter null-safety thanks to @ueman and @fzyzcjy
- Fix: captureMessage defaults SentryLevel to info
- Fix: SentryEvent.throwable returns the unwrapped throwable instead of the throwableMechanism
- Feat: Support enableNativeCrashHandling on iOS
- Bump: sentry-android to v4.0.0
- Fix: Pana Flutter upper bound deprecation
- Fix: sentry_flutter static analysis (pana) using stable version
- Fix: Call WidgetsFlutterBinding.ensureInitialized() within runZoneGuarded
- Fix: Auto session tracking start on iOS #274
- Bump: Sentry-cocoa to 6.1.4
- Fix: Mark session as
errored
in iOS #270 - Fix: Pass auto session tracking interval to iOS
- Fix: Deprecated binaryMessenger (MethodChannel member) for Flutter Web
- Ref: Make
WidgetsFlutterBinding.ensureInitialized();
the first thing the Sentry SDK calls. - Bump: Sentry-cocoa to 6.0.12
- Feat: Respect FlutterError silent flag #248
- Bump: Android SDK to v3.2.1 #273
- Ref: Changed category of Flutter lifecycle tracking #240
- Fix: Envelope length should be based on the UTF8 array instead of String length
Release of Sentry's new SDK for Dart/Flutter.
New features not offered by <= v4.0.0:
- Sentry's Unified API.
- Complete Sentry's Protocol available.
- Dart SDK docs.
- Automatic HTTP Breadcrumbs for http.Client
- No boilerplate for
runZonedGuarded
andIsolate.current.addErrorListener
- All events are enriched with Scope's Contexts, this includes Breadcrumbs, tags, User, etc...
- The Flutter SDK is built on top of the Dart SDK, so it includes all the available features, plus
- Flutter SDK docs.
- Automatic NavigatorObserver Breadcrumbs
- Automatic Device's Breadcrumbs through the Android and iOS SDKs or via Sentry's
WidgetsBindingObserver
wrapper - No boilerplate for
FlutterError.onError
- All events are enriched with Contexts's data, this includes Device's, OS, App info, etc...
- Offline caching
- Release health
- Captures not only Dart and Flutter errors, but also errors caused on the native platforms, Like Kotlin, Java, C and C++ for Android and Swift, ObjC, C, C++ for iOS
- Supports Fatal crashes, Event is going to be sent on App's restart
- Supports
split-debug-info
for Android only - Flutter Android, iOS and limited support for Flutter Web
Improvements:
- Feat: Added a copyWith method to all the protocol classes
Packages were released on sentry pubdev and sentry_flutter pubdev
- Since version
4.0.0
of thesentry_flutter
, Sentry's version >= v20.6.0 is required. This only applies to on-premise Sentry, if you are using sentry.io no action is needed.
- Ref: Remove duplicated attachStackTrace field
- Fix: Flutter Configurations should be able to mutate the SentryFlutterOptions
- Enhancement: Add SentryWidgetsBindingObserver, an Integration that captures certain window and device events.
- Enhancement: Set
options.environment
on SDK init based on the flags (kReleaseMode, kDebugMode, kProfileMode or SENTRY_ENVIRONMENT). - Feature: SentryHttpClient to capture HTTP requests as breadcrumbs
- Ref: Only assign non-null option values in Android native integration in order preserve default values
- Enhancement: Add 'attachThreads' in options. When enabled, threads are attached to all logged events for Android
- Ref: Rename typedef
Logger
toSentryLogger
to prevent name clashes with logging packages - Fix: Scope Event processors should be awaited
- Fix: Package usage as git dependency
Logger
typedef is renamed toSentryLogger
attachStackTrace
is renamed toattachStacktrace
- Fix: StackTrace frames with 'package' uri.scheme are inApp by default #185
- Fix: Missing App's StackTrace frames for Flutter errors
- Enhancement: Add isolateErrorIntegration and runZonedGuardedIntegration to default integrations in sentry-dart
- Fix: Breadcrumb list is a plain list instead of a values list #201
- Ref: Remove deprecated classes (Flutter Plugin for Android) and cleaning up #186
- Fix: Handle immutable event lists and maps
- Fix: NDK integration was being disabled by a typo
- Fix: Missing toList for debug meta #192
- Enhancement: NavigationObserver to record Breadcrumbs for navigation events #197
- Fix: Integrations should be closeable
- Feat: Support split-debug-info for Android #191
- Fix: the event payload must never serialize null or empty fields
- Ref: Make hints optional
Sentry.init
andSentryFlutter.init
have an optional callback argument which runs the host App after Sentry initialization.Integration
is anInterface
instead of a pure FunctionHints
are optional arguments- Sentry Dart SDK adds an
IsolateError
handler by default
- Enhancement:
Contexts
were added to theScope
#154 - Fix: App. would hang if
debug
mode was enabled and refactoring ##157 - Enhancement: Sentry Protocol v7
- Enhancement: Added missing Protocol fields,
Request
,SentryStackTrace
...) #155 - Feat: Added
attachStackTrace
options to attach stack traces oncaptureMessage
calls - Feat: Flutter SDK has the Native SDKs embedded (Android and Apple) #158
Sentry.init
returns aFuture
.- Dart min. SDK is
2.8.0
- Flutter min. SDK is
1.17.0
- Timestamp has millis precision.
- For better groupping, add your own package to the
addInAppInclude
list, e.g.options.addInAppInclude('sentry_flutter_example');
- A few classes of the
Protocol
were renamed.
- Since version
4.0.0
of thesentry_flutter
,Sentry
version >=v20.6.0
is required. This only applies to on-premise Sentry, if you are using sentry.io no action is needed.
First Release of Sentry's new SDK for Dart/Flutter.
New features not offered by <= v4.0.0:
- Sentry's Unified API.
- Complete Sentry Protocol available.
- Docs and Migration is under review on this PR
- For all the breaking changes follow this PR, they'll be soon available on the Migration page.
Packages were released on pubdev
We'd love to get feedback and we'll work in getting the GA 4.0.0 out soon. Until then, the stable SDK offered by Sentry is at version 3.0.1
- Add support for Contexts in Sentry events
pubspec.yaml
and example code clean-up.
- Support Web
SentryClient
frompackage:sentry/sentry.dart
with conditional importSentryBrowserClient
for web frompackage:sentry/browser_client.dart
SentryIOClient
for VM and Flutter frompackage:sentry/io_client.dart
- Support non-standard port numbers and paths in DSN URL.
- Add breadcrumb support.
- Add a
stackFrameFilter
argument toSentryClient
'scapture
method (96be842). - Clean-up code using pre-Dart 2 API (91c7706, b01ebf8).
- Defensively copy internal maps event attributes to avoid shared mutable state (https://github.com/flutter/sentry/commit/044e4c1f43c2d199ed206e5529e2a630c90e4434)
- Support DNS format without secret key.
- Remove dependency on
package:quiver
. - The
clock
argument toSentryClient
constructor should now beClockProvider
(but still acceptsClock
for backwards compatibility).
- Add support for user context in Sentry events.
- Invert stack frames to be compatible with Sentry's default culprit detection.
- Fixed deprecation warnings for Dart 2
- Refactored tests to work with Dart 2
- first and last Dart 1-compatible release (we may fix bugs on a separate branch if there's demand)
- fix code for Dart 2
- use UTC in the
timestamp
field
- remove sub-seconds from the timestamp
- parse and report async gaps in stack traces
- environment attributes
- auto-generate event_id and timestamp for events
- parse and report stack traces
- use x-sentry-error HTTP response header
- gzip outgoing payloads by default
- basic ability to send exception reports to Sentry.io