# ── Firebase ───────────────────────────────────────────────────────────────── -keep class com.google.firebase.** { *; } -keep class com.google.android.gms.** { *; } -keepattributes Signature # ── Hilt ───────────────────────────────────────────────────────────────────── -keep class dagger.hilt.** { *; } -keepclasseswithmembers class * { @dagger.hilt.android.lifecycle.HiltViewModel (...); } # ── Room ────────────────────────────────────────────────────────────────────── -keep @androidx.room.Entity class * { *; } -keep @androidx.room.Dao interface * { *; } -keep @androidx.room.Database class * { *; } # ── Domain models (used in Firestore manual mapping & local JSON) ───────────── -keepclassmembers class app.closer.domain.model.** { ; (...); } # ── RevenueCat ──────────────────────────────────────────────────────────────── -keep class com.revenuecat.** { *; } -dontwarn com.revenuecat.** # ── Kotlin coroutines ──────────────────────────────────────────────────────── -keepclassmembernames class kotlinx.** { volatile ; } -dontwarn kotlinx.coroutines.** # ── Crash reporting: preserve source file names and line numbers ───────────── -keepattributes SourceFile,LineNumberTable -keep public class * extends java.lang.Exception -renamesourcefileattribute SourceFile # ── Kotlin metadata (needed for reflection-free Kotlin code) ───────────────── -keepattributes RuntimeVisibleAnnotations -keepattributes RuntimeInvisibleAnnotations -keepattributes *Annotation* # ── Prevent stripping of BuildConfig ───────────────────────────────────────── -keep class app.closer.BuildConfig { *; } # ── Suppress warnings for optional dependencies ────────────────────────────── -dontwarn org.conscrypt.** -dontwarn org.bouncycastle.** -dontwarn org.openjsse.**