- Add generic log APIs with explicit level parameter (#520)
// New APIs:
// Simple message
Sentry.logger.log(SentryLogLevel.INFO, "User logged in")
// Message with parameters
Sentry.logger.log(SentryLogLevel.WARN, "Rate limit reached for %s", endpoint)
// Message with parameters and attributes
Sentry.logger.log(SentryLogLevel.ERROR, "Failed to process %s", request) {
this["error.code"] = 500
this["retry"] = true
}
// Full DSL
Sentry.logger.log(SentryLogLevel.FATAL) {
message("Database connection pool exhausted for %s", dbHost)
attributes {
this["database"] = "users"
this["activeConnections"] = 100
}
}- Support
proguardUuidoption on JVM target in addition to Android (#533)
- Add structured logs support (#509)
Read the full documentation for more details.
Sentry.init {
it.dsn = "YOUR_DSN"
// Enable logs to be sent to Sentry
it.logs.enabled = true
}
// Simple API
Sentry.logger.warn("Rate limit reached for %s", endpoint) {
this["currentRequests"] = 120
this["limit"] = 100
this["retryAfterSeconds"] = 60
}
// Full DSL
Sentry.logger.fatal {
message("Database connection pool exhausted for %s", dbHost)
attributes {
this["database"] = "users"
this["activeConnections"] = 100
}
}- Fix UserFeedback not being sent on iOS (#503)
- Improve iOS crash reports by adding scope data (#491)
- Improve stacktrace of manually captured exceptions on iOS (#493)
- Add
proguardUuidoption toSentryOptions(#436)- This will propagate the
proguardUuidvalue to Sentry Android
- This will propagate the
- Fix stack trace crash on Apple targets (#434)
- Gradle Plugin: allow new supported targets to be installed (#429)
- Add stubs/no-op support for unsupported targets (#426)
Potentially breaking: this release bumps the used Kotlin version to 2.1.21.
- Bump Kotlin from
1.9.23to2.1.21(#389)
- Update
distZiptask to use the locally published artifacts viapublishToMavenLocal(#425)
- Add
sendDefaultPiioption (#377)
beforeSendoverriding default release and dist even if it was not set explicitly (#376)
- Bump Java SDK from v8.8.0 to v8.15.1 (#375, #382, #387, #402, #404, #406)
- Bump Cocoa SDK from v8.49.0 to v8.49.1 (#374)
- Move replay options out of experimental (#367)
- You can now access the replay options via
options.sessionReplay
- You can now access the replay options via
- Do not throw if exec operation fails (#360)
initWithPlatformsnot sending events ifbeforeSendis not set on iOS (#366)
- Update native android sdk name to
sentry.native.android.kmp(#353)
- Bump Cocoa SDK from v8.44.0 to v8.49.0 (#345, #363)
- Bump Java SDK from v7.18.1 to v8.8.0 (#350, #364)
- [Gradle Plugin]: Architecture folder name missmatch when using SPM and framework path searching (#320)
- [Gradle Plugin]: Check exit value when executing
xcodebuildcommand (#326)
- Add experimental session replay options to common code (#275)
Sentry.init { options ->
// Adjust these values for production
options.sessionReplay.onErrorSampleRate = 1.0
options.sessionReplay.sessionSampleRate = 1.0
}- Add
Sentry.isEnabled()API to common code (#273) - Add
enableWatchdogTerminationTrackingin common options (#281) - Add
diagnosticLevelin common options (#287)
- Bump Cocoa SDK from v8.36.0 to v8.38.0 (#279, #285)
- Bump Java SDK from v7.14.0 to v7.16.0 (#284, #289)
- Improve interop with objc headers (#265)
- Plugin: dont use
latest.releaseas default for the KMP dependency (#262)
- New Sentry KMP Gradle plugin (#230)
- Install via
plugins { id("io.sentry.kotlin.multiplatform.gradle") version "{version}" } - Enables auto installing of the KMP SDK to
commonMain(if all targets are supported)- This also automatically installs the Sentry Android SDK
- Enables auto installing of the required Sentry Cocoa SDK with Cocoapods (if Cocoapods plugin is enabled)
- Configures linking for SPM (needed if you want to compile a dynamic framework with
isStatic = false) - Configure via the
sentryKmpconfiguration block in your build file
- Install via
// Example configuration in build.gradle.kts
sentryKmp {
// Disable auto installing the KMP SDK to commonMain
autoInstall.commonMain.enabled = false
}- Bump Kotlin version from v1.9.21 to v1.9.23 (#250)
- Bump Java SDK from v7.13.0 to v7.14.0 (#253)
- Bump Cocoa SDK from v8.33.0 to v8.36.0 (#258)
- New Sentry KMP Gradle plugin (#230)
- Install via
plugins { id("io.sentry.kotlin.multiplatform.gradle") version "{version}" } - Enables auto installing of the KMP SDK to commonMain (if all targets are supported)
- Enables auto installing of the required Sentry Cocoa SDK with Cocoapods (if Cocoapods plugin is enabled)
- Configures linking for SPM (needed if you want to compile a dynamic framework)
- Configure via the
sentryKmpconfiguration block in your build file
- Install via
- Bump Kotlin version from v1.9.21 to v1.9.23 (#250)
- Bump Java SDK from v7.9.0 to v7.13.0 (#236, #242, #248)
- Bump Cocoa SDK from v8.26.0 to v8.33.0 (#244, #251)
- Symbol multiply defined when trying to run cocoa targets (#226)
- Allow initializing the KMP SDK with native options (#221)
- This allows you to initialize the SDK with platform-specific options that may not be available in the common code of the KMP SDK yet.
Usage:
// build.gradle.kts
kotlin {
sourceSets {
all {
languageSettings.optIn("kotlinx.cinterop.ExperimentalForeignApi")
}
}
}
// commonMain
fun init() {
Sentry.initWithPlatformOptions(createPlatformOptions())
}
expect fun platformOptionsConfiguration(): PlatformOptionsConfiguration
// iOS
actual fun createPlatformOptions(): PlatformOptionsConfiguration = {
dsn = "your_dsn"
release = "1.0.0"
// ...
}
// Android
actual fun createPlatformOptions(): PlatformOptionsConfiguration = {
dsn = "your_dsn"
release = "1.0.0"
// ...
}Note: This release includes a bump to Sentry Cocoa v8.25.0. Please use at least version 8.25.0 of the Sentry Cocoa SDK starting from this release. If you are using the Cocoapods gradle plugin you need to adjust your configuration:
pod("Sentry") {
version = "8.25.0"
// These extra options are required
extraOpts += listOf("-compiler-option", "-fmodules")
}- Don't crash app when
applicationContextis not available (#217)
- Make
setSentryUnhandledExceptionHookpublic (#208)
- Add App Hang Tracking / ANR options (#187)
- Use
isAnrEnabledandanrTimeoutIntervalMillisto configure ANR tracking for Android - Use
enableAppHangTrackingandappHangTimeoutIntervalMillisto configure App Hang tracking for iOS - Both options are enabled by default
- Use
- Add isCrashedLastRun (#186)
- You can use it with
Sentry.isCrashedLastRun()
- You can use it with
- Bump Cocoa SDK from v8.17.2 to v8.20.0 (#180, #182)
- Bump Java SDK from v7.1.0 to v7.4.0 (#177, #181, #189)
- Bump Java SDK from v6.33.1 to v7.1.0 (#157, #164)
- Bump Cocoa SDK from v8.4.0 to v8.17.1 (#158)
- Bump Kotlin version from v1.8.0 to v1.9.21 (#146
- Add sample & trace rate configuration (#144)
- Remove need for context in Sentry.init for Android (#117)
- fix: beforeBreadcrumb discarding if hook is not set (#105)
- feat: automatically disable
io.sentry.auto-init(#93)
- fix: NSNumber to Kotlin Long crash during SentryException conversion (#92)
- ref: improve samples & add SPM docs (#82)
- fix: beforeSend dropping events if not set in options (#79)
- feat: beforeSend / fingerprinting (#70)
- feat: configuring http client errors for Apple targets (#76)
- feat: improve Objc/Swift experience with @HiddenFromObjc (#62)
- feat: add view hierarchy (#53)
- ref: use explicit api & add code consistency (#63)
- fix: cocoa crash handling due to sdkInfo removal in cocoa sdk (#68)
- fix: crash on Android API levels 23 and below (#61)
- remove other sdks in .craft.yml (#58) by @buenaflor
- fix: sdk name (#57) by @buenaflor
- chore: update readme (#56) by @buenaflor
- bump craft minVersion to 1.2.1 (#55) by @buenaflor
- JVM, Android, iOS, macOS, watchOS, tvOS integration
- Sentry init and close
- Capture Message
- Capture Exception with proper stack traces
- Custom unhandled exception handler on Cocoa to properly catch crashes and the stacktrace
- Scope configuration globally and locally
- User Feedback
- Attachments to Scope
- Screenshots option for Android and iOS
- Add beforeBreadcrumb hook
- Kotlin Multiplatform Sample project