From 419c4f1567bbbc9e59b3bd7abd9ed95eb58823ff Mon Sep 17 00:00:00 2001 From: melad Date: Wed, 25 Sep 2024 21:02:42 +0300 Subject: [PATCH] [MS-732] Fix ProGuard issue causing release build failure with Hilt modules - Added necessary ProGuard rules to prevent Hilt and Dagger classes from being stripped during minification. - Ensured that @InstallIn annotations and generated components are preserved in release builds. --- build-logic/proguard-rules.pro | 21 +++++++++++++++++++++ id/proguard-rules.pro | 22 ++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/build-logic/proguard-rules.pro b/build-logic/proguard-rules.pro index ebc282492a..77c15a71c7 100644 --- a/build-logic/proguard-rules.pro +++ b/build-logic/proguard-rules.pro @@ -2,3 +2,24 @@ -dontwarn com.simprints.** # Do not obfuscate the simprints package -keep class com.simprints.** { *; } +# Hilt +-keep class dagger.hilt.** { *; } +-keep class javax.inject.** { *; } +-keep class dagger.** { *; } + +# Prevent ProGuard from removing @Module, @Inject, @Binds, etc. +-keep class **Module { *; } +-keep class **Inject { *; } +-keep class **Provides { *; } +-keep class **Binds { *; } +-keep class **Hilt_** { *; } + +# Keep generated Hilt components +-keep class * implements dagger.hilt.internal.GeneratedComponent { *; } + +# Keep classes annotated with @InstallIn to prevent them from being removed +-keep @dagger.hilt.InstallIn class * { *; } + +# Keep Hilt components and related Dagger generated code +-keep class * extends dagger.hilt.internal.GeneratedComponentManager { *; } +-keep class * extends dagger.hilt.internal.GeneratedComponent { *; } diff --git a/id/proguard-rules.pro b/id/proguard-rules.pro index 7e76ab1f58..f9ec12dc8e 100644 --- a/id/proguard-rules.pro +++ b/id/proguard-rules.pro @@ -66,3 +66,25 @@ -keep class retrofit2.** { *; } -keep interface retrofit2.** { *; } + +# Hilt +-keep class dagger.hilt.** { *; } +-keep class javax.inject.** { *; } +-keep class dagger.** { *; } + +# Prevent ProGuard from removing @Module, @Inject, @Binds, etc. +-keep class **Module { *; } +-keep class **Inject { *; } +-keep class **Provides { *; } +-keep class **Binds { *; } +-keep class **Hilt_** { *; } + +# Keep generated Hilt components +-keep class * implements dagger.hilt.internal.GeneratedComponent { *; } + +# Keep classes annotated with @InstallIn to prevent them from being removed +-keep @dagger.hilt.InstallIn class * { *; } + +# Keep Hilt components and related Dagger generated code +-keep class * extends dagger.hilt.internal.GeneratedComponentManager { *; } +-keep class * extends dagger.hilt.internal.GeneratedComponent { *; }