From 8fee5fe3b3b454dab2ae302901d753ae6b268166 Mon Sep 17 00:00:00 2001 From: Greg Stanton Marra Date: Thu, 12 Feb 2026 19:54:27 -0500 Subject: [PATCH] =?UTF-8?q?Bump=20Firebase=20BOM=2033.7.0=20=E2=86=92=2034?= =?UTF-8?q?.9.0=20and=20migrate=20off=20deprecated=20KTX=20modules?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BOM 34.0.0 removed the deprecated -ktx modules (Kotlin extensions are now in the main modules). Switch all Firebase dependencies from -ktx to main artifacts: firebase-auth, firebase-messaging, firebase-analytics, firebase-config, firebase-crashlytics. This also upgrades firebase-crashlytics from 19.3.0 to 20.0.4, which ships proper R8 full mode consumer rules — the ComponentRegistrar constructor keep rule from the previous commit is no longer needed and is removed. Verified: Crashlytics 20.0.4 initializes correctly without the keep rule on AGP 9 with R8 full mode. Unit tests pass. Co-Authored-By: Claude Opus 4.6 --- app/proguard-rules.pro | 6 ------ gradle/libs.versions.toml | 12 ++++++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index c2b57117c..fb164d666 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -1,7 +1 @@ # Add project specific ProGuard rules here. - -# Firebase component registrars are instantiated via reflection. -# R8 strips their no-arg constructors without this rule. --keep class com.google.firebase.** implements com.google.firebase.components.ComponentRegistrar { - (); -} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3177a8f5a..788a2957c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ datastore = "1.1.1" coil = "2.7.0" aboutlibraries = "14.0.0-b02" -firebase-bom = "33.7.0" +firebase-bom = "34.9.0" google-services = "4.4.2" firebase-crashlytics-plugin = "3.0.3" credentials = "1.5.0" @@ -85,11 +85,11 @@ aboutlibraries-compose-m3 = { group = "com.mikepenz", name = "aboutlibraries-com # Firebase firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebase-bom" } -firebase-auth = { group = "com.google.firebase", name = "firebase-auth-ktx" } -firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging-ktx" } -firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics-ktx" } -firebase-config = { group = "com.google.firebase", name = "firebase-config-ktx" } -firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics-ktx" } +firebase-auth = { group = "com.google.firebase", name = "firebase-auth" } +firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging" } +firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics" } +firebase-config = { group = "com.google.firebase", name = "firebase-config" } +firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics" } # Credentials credentials = { group = "androidx.credentials", name = "credentials", version.ref = "credentials" }