90 lines
2.8 KiB
Prolog
90 lines
2.8 KiB
Prolog
##########################################
|
|
## ✅ FLUTTER
|
|
##########################################
|
|
-keep class io.flutter.** { *; }
|
|
-dontwarn io.flutter.**
|
|
|
|
##########################################
|
|
## ✅ FIREBASE (Safe)
|
|
##########################################
|
|
-keep class com.google.firebase.** { *; }
|
|
-keep class com.google.android.gms.** { *; }
|
|
-dontwarn com.google.firebase.**
|
|
-dontwarn com.google.android.gms.**
|
|
|
|
##########################################
|
|
## ✅ FCM Background Messaging
|
|
##########################################
|
|
-keep class com.google.firebase.messaging.FirebaseMessagingService { *; }
|
|
-keep class com.google.firebase.messaging.FirebaseMessaging { *; }
|
|
-keep class com.google.firebase.messaging.RemoteMessage { *; }
|
|
|
|
##########################################
|
|
## ✅ Gson / JSON Models (Correct way)
|
|
##########################################
|
|
-keepclassmembers class * {
|
|
@com.google.gson.annotations.SerializedName <fields>;
|
|
}
|
|
|
|
# Keep all model classes to prevent crashes
|
|
-keep class **.model.** { *; }
|
|
-keep class **.models.** { *; }
|
|
|
|
##########################################
|
|
## ✅ Retrofit / OkHttp
|
|
##########################################
|
|
-dontwarn okhttp3.**
|
|
-dontwarn okio.**
|
|
-dontwarn retrofit2.**
|
|
-keep class okhttp3.** { *; }
|
|
-keep class okio.** { *; }
|
|
-keep interface retrofit2.** { *; }
|
|
|
|
##########################################
|
|
## ✅ Glide / image loading (avoid BigPicture FCM crash)
|
|
##########################################
|
|
-dontwarn com.bumptech.glide.**
|
|
-keep class com.bumptech.glide.** { *; }
|
|
|
|
##########################################
|
|
## ✅ Prevent crashes for reflection
|
|
##########################################
|
|
-keepattributes Signature
|
|
-keepattributes Annotation
|
|
|
|
##########################################
|
|
## ✅ KEEP ENUMS (Firebase uses it)
|
|
##########################################
|
|
-keepclassmembers enum * { *; }
|
|
|
|
##########################################
|
|
## ✅ Do NOT break Kotlin (Important)
|
|
##########################################
|
|
-keep class kotlin.** { *; }
|
|
-dontwarn kotlin.**
|
|
|
|
##########################################
|
|
## ✅ GETX (State Management & Snackbars)
|
|
##########################################
|
|
# Keep all GetX classes and methods
|
|
-keep class get.** { *; }
|
|
-keep class * extends get.GetxController { *; }
|
|
-keepclassmembers class * extends get.GetxController {
|
|
<methods>;
|
|
<fields>;
|
|
}
|
|
# Keep GetX navigation and routing
|
|
-keep class get.Get { *; }
|
|
-keep class get.GetMaterialApp { *; }
|
|
-keep class get.GetNavigator { *; }
|
|
-keep class get.GetSnackbar { *; }
|
|
# Keep GetX observables and reactive variables
|
|
-keep class get.Rx* { *; }
|
|
-keep class get.Obs* { *; }
|
|
-dontwarn get.**
|
|
|
|
##########################################
|
|
## ✅ Reduce unnecessary warnings
|
|
##########################################
|
|
-ignorewarnings
|