diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c1927f0..b94730a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +### Features + +- Improve Objc/Swift experience with @HiddenFromObjc ([#62](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/62)) + ## 0.0.3 ### Fixes diff --git a/README.md b/README.md index aeec5845..0c49bd66 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,8 @@ This project is an experimental SDK for Kotlin Multiplatform. This SDK is a wrapper around different platforms such as JVM, Android, iOS, macOS, watchOS, tvOS that can be used on Kotlin Multiplatform. +[![Kotlin](https://img.shields.io/badge/Kotlin-1.8.0-blue.svg?style=flat&logo=kotlin)](https://kotlinlang.org) + | Packages | Maven Central |-----------------------------------------| ------- | sentry-kotlin-multiplatform | [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-kotlin-multiplatform/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-kotlin-multiplatform) diff --git a/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryKMP.kt b/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryKMP.kt index c796c528..f25c565b 100644 --- a/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryKMP.kt +++ b/sentry-kotlin-multiplatform/src/commonMain/kotlin/io/sentry/kotlin/multiplatform/SentryKMP.kt @@ -4,6 +4,8 @@ import io.sentry.kotlin.multiplatform.protocol.Breadcrumb import io.sentry.kotlin.multiplatform.protocol.SentryId import io.sentry.kotlin.multiplatform.protocol.User import io.sentry.kotlin.multiplatform.protocol.UserFeedback +import kotlin.experimental.ExperimentalObjCRefinement +import kotlin.native.HiddenFromObjC typealias ScopeCallback = (Scope) -> Unit typealias OptionsConfiguration = (SentryOptions) -> Unit @@ -19,6 +21,8 @@ object Sentry { * @param context: The context (used for retrieving Android Context) * @param configuration Options configuration handler. */ + @OptIn(ExperimentalObjCRefinement::class) + @HiddenFromObjC fun init(context: Context, configuration: OptionsConfiguration) { SentryBridge.init(context, configuration) } diff --git a/sentry-samples/kmp-app/iosApp/iosApp/iOSApp.swift b/sentry-samples/kmp-app/iosApp/iosApp/iOSApp.swift index 827559ab..87fa7450 100644 --- a/sentry-samples/kmp-app/iosApp/iosApp/iOSApp.swift +++ b/sentry-samples/kmp-app/iosApp/iosApp/iOSApp.swift @@ -3,15 +3,15 @@ import shared @main struct iOSApp: App { - let sentry = Sentry() - + let sentry = Sentry.shared + init() { // Initialize Sentry using shared code AppSetupKt.initializeSentry() // Shared scope across all platforms AppSetupKt.configureSentryScope() - + // Add platform specific scope in addition to the shared scope sentry.configureScope { scope in scope.setContext(key: "iOS Context", value: [