From aa5a7877e472fe6a1ddd91d26d34ff2d4ddf8758 Mon Sep 17 00:00:00 2001 From: asif Date: Thu, 4 Sep 2025 01:24:44 +0530 Subject: [PATCH] added proguard for code obfuscation in android --- android/app/build.gradle | 8 +- android/app/proguard-rules.pro | 92 +-- .../reports/problems/problems-report.html | 663 ++++++++++++++++++ 3 files changed, 685 insertions(+), 78 deletions(-) create mode 100644 android/build/reports/problems/problems-report.html diff --git a/android/app/build.gradle b/android/app/build.gradle index 3dc0a04..74d8427 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -53,13 +53,13 @@ android { buildTypes { release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. signingConfig signingConfigs.debug minifyEnabled true shrinkResources true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), - 'proguard-rules.pro' - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } } } diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index 1cf3f18..ee2d3eb 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -1,77 +1,21 @@ -# Keep Flutter embedding and plugin registrant (important) --keep class io.flutter.embedding.** { *; } --keep class io.flutter.plugins.** { *; } --keep class io.flutter.plugin.** { *; } -keep class io.flutter.app.** { *; } - -# Keep Application / Activity if you customized them (replace with your package name) -# -keep class com.yourcompany.yourapp.MainActivity { *; } -# -keep class com.yourcompany.yourapp.** { *; } - -# Keep classes referenced from AndroidManifest via reflection or lifecycle --keepclassmembers class * { - @android.webkit.JavascriptInterface ; - public (android.content.Context, ...); -} - -# Keep native entry points (JNI) if any (example) --keepclasseswithmembernames class * { - native ; -} - -# Keep classes that use reflection heavily (OKHttp/Retrofit/Gson) -# Retrofit/OkHttp --keep class okhttp3.** { *; } --keep interface okhttp3.** { *; } --keep class retrofit2.** { *; } --keep interface retrofit2.** { *; } - -# Gson (models accessed by reflection) --keep class com.google.gson.** { *; } --keepattributes Signature --keepattributes *Annotation* - -# Keep Firebase (if you use it) +-keep class io.flutter.plugin.** { *; } +-keep class io.flutter.util.** { *; } +-keep class io.flutter.view.** { *; } +-keep class io.flutter.embedding.** { *; } +-keep class io.flutter.embedding.engine.plugins.** { *; } -keep class com.google.firebase.** { *; } -keep class com.google.android.gms.** { *; } - -# WorkManager (if used) --keep class androidx.work.impl.background.systemjob.SystemJobService { *; } --keep class androidx.work.** { *; } - -# Room/DB entities - if you use Room, keep annotations and entity classes --keepclassmembers class * { - @androidx.room.* ; -} --keep class androidx.room.** { *; } - -# Keep classes loaded by reflection (e.g. through Class.forName) --keepclassmembers,includedescriptorclasses class * { - public static ; - public (...); -} - -# Keep Kotlin metadata (for Kotlin reflection) --keep class kotlin.Metadata { *; } - -# Keep names of classes annotated with @Keep --keep @androidx.annotation.Keep class * { *; } --keepclassmembers class * { - @androidx.annotation.Keep *; -} - -# If using Gson TypeAdapterFactory via reflection --keepclassmembers class * { - static ** typeAdapterFactory*(...); -} - -# Don't remove debug/logging if you want (optional) -#-keep class android.util.Log { *; } - -# Keep any generated plugin registrant classes if present (older projects) --keep class io.flutter.plugins.GeneratedPluginRegistrant { *; } - -# (Optional) Keep parcelable implementations if those are serialized dynamically --keep class * implements android.os.Parcelable { - public static final android.os.Parcelable$Creator *; -} \ No newline at end of file +# Please add these rules to your existing keep rules in order to suppress warnings. +# This is generated automatically by the Android Gradle plugin. +-dontwarn com.google.android.play.core.splitcompat.SplitCompatApplication +-dontwarn com.google.android.play.core.splitinstall.SplitInstallException +-dontwarn com.google.android.play.core.splitinstall.SplitInstallManager +-dontwarn com.google.android.play.core.splitinstall.SplitInstallManagerFactory +-dontwarn com.google.android.play.core.splitinstall.SplitInstallRequest$Builder +-dontwarn com.google.android.play.core.splitinstall.SplitInstallRequest +-dontwarn com.google.android.play.core.splitinstall.SplitInstallSessionState +-dontwarn com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener +-dontwarn com.google.android.play.core.tasks.OnFailureListener +-dontwarn com.google.android.play.core.tasks.OnSuccessListener +-dontwarn com.google.android.play.core.tasks.Task \ No newline at end of file diff --git a/android/build/reports/problems/problems-report.html b/android/build/reports/problems/problems-report.html new file mode 100644 index 0000000..30f5fa8 --- /dev/null +++ b/android/build/reports/problems/problems-report.html @@ -0,0 +1,663 @@ + + + + + + + + + + + + + Gradle Configuration Cache + + + +
+ +
+ Loading... +
+ + + + + +