From 088ec8bb2724f59b43aa066c1f57439b5c0c899e Mon Sep 17 00:00:00 2001 From: Michael Troger Date: Fri, 26 Sep 2025 09:49:37 +0200 Subject: [PATCH 1/2] Add Crashlytics opt in option --- .../crashkios/crashlytics/CrashlyticsCallsActual.kt | 4 ++++ .../crashkios/crashlytics/CrashlyticsCallsActual.kt | 4 ++++ .../co/touchlab/crashkios/crashlytics/CrashlyticsCalls.kt | 1 + .../touchlab/crashkios/crashlytics/CrashlyticsKotlin.kt | 8 ++++++++ crashlytics/src/nativeInterop/cinterop/crashlytics.def | 7 +++++++ 5 files changed, 24 insertions(+) diff --git a/crashlytics/src/androidMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt b/crashlytics/src/androidMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt index 7a603b7..d7a1830 100644 --- a/crashlytics/src/androidMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt +++ b/crashlytics/src/androidMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt @@ -32,4 +32,8 @@ actual class CrashlyticsCallsActual : CrashlyticsCalls { override fun setUserId(identifier: String) { FirebaseCrashlytics.getInstance().setUserId(identifier) } + + override fun setCollectionEnabled(enabled: Boolean) { + FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(enabled) + } } \ No newline at end of file diff --git a/crashlytics/src/appleMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt b/crashlytics/src/appleMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt index 6e289ef..390bbfe 100644 --- a/crashlytics/src/appleMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt +++ b/crashlytics/src/appleMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCallsActual.kt @@ -38,4 +38,8 @@ actual class CrashlyticsCallsActual : CrashlyticsCalls { override fun setUserId(identifier: String) { FIRCrashlyticsSetUserID(identifier) } + + override fun setCollectionEnabled(enabled: Boolean) { + FIRCrashlyticsSetCollectionEnabled(enabled) + } } diff --git a/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCalls.kt b/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCalls.kt index 454b99f..c954a55 100644 --- a/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCalls.kt +++ b/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsCalls.kt @@ -6,6 +6,7 @@ interface CrashlyticsCalls { fun sendFatalException(throwable: Throwable) fun setCustomValue(key: String, value: Any) fun setUserId(identifier: String) + fun setCollectionEnabled(enabled: Boolean) } expect class CrashlyticsCallsActual() : CrashlyticsCalls diff --git a/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsKotlin.kt b/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsKotlin.kt index 9db53cd..9763f58 100644 --- a/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsKotlin.kt +++ b/crashlytics/src/commonMain/kotlin/co/touchlab/crashkios/crashlytics/CrashlyticsKotlin.kt @@ -24,6 +24,10 @@ object CrashlyticsKotlin { fun setUserId(identifier: String) { implementation.setUserId(identifier) } + + fun setCollectionEnabled(enabled: Boolean) { + implementation.setCollectionEnabled(enabled) + } } /** @@ -54,4 +58,8 @@ internal object EmptyCalls : CrashlyticsCalls { override fun setUserId(identifier: String) { } + + override fun setCollectionEnabled(enabled: Boolean) { + + } } \ No newline at end of file diff --git a/crashlytics/src/nativeInterop/cinterop/crashlytics.def b/crashlytics/src/nativeInterop/cinterop/crashlytics.def index 9cb9892..309b9ee 100644 --- a/crashlytics/src/nativeInterop/cinterop/crashlytics.def +++ b/crashlytics/src/nativeInterop/cinterop/crashlytics.def @@ -136,6 +136,13 @@ void FIRCrashlyticsSetUserID(NSString* _Nonnull identifier) { setUserID(crashlytics, selector, identifier); } +void FIRCrashlyticsSetCollectionEnabled(BOOL enabled) { + id crashlytics = FIRCrashlyticsInstance(); + SEL selector = NSSelectorFromString(@"setCrashlyticsCollectionEnabled:"); + void (*setCrashlyticsCollectionEnabled)(id, SEL, BOOL) = FIRMethodForSelector(crashlytics, selector); + setCrashlyticsCollectionEnabled(crashlytics, selector, enabled); +} + void FIRCrashlyticsSetCustomValue(NSString* _Nonnull key, id __nullable value) { id crashlytics = FIRCrashlyticsInstance(); SEL selector = NSSelectorFromString(@"setCustomValue:forKey:"); From cc9c811f70c3562f8454119eae0cc26645959e84 Mon Sep 17 00:00:00 2001 From: Sam Hill Date: Tue, 7 Oct 2025 15:42:10 -0400 Subject: [PATCH 2/2] Update cache action --- .github/workflows/build.yml | 4 ++-- .github/workflows/deploy.yml | 4 ++-- .github/workflows/release.yml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 110f01e..4698623 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,14 +24,14 @@ jobs: - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 - name: Cache gradle - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} restore-keys: | ${{ runner.os }}-gradle- - name: Cache konan - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.konan key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 87eb9c2..ed2421e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -29,7 +29,7 @@ jobs: uses: gradle/wrapper-validation-action@v1 - name: Cache gradle - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} @@ -37,7 +37,7 @@ jobs: ${{ runner.os }}-gradle- - name: Cache konan - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.konan key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c57f597..c16e282 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,7 +24,7 @@ jobs: - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 - name: Cache gradle - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }} @@ -32,7 +32,7 @@ jobs: ${{ runner.os }}-gradle- - name: Cache konan - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/.konan key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }}