From e4676f4c55c2dea4e4f153678dd00f8c8122d3cd Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Wed, 17 Nov 2021 19:10:36 +0300 Subject: [PATCH] Enable R8 without code obfuscation --- app/build.gradle | 8 +++++++- app/proguard-rules.pro | 24 +++++++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 90cab58..35e040a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,8 +21,14 @@ android { } buildTypes { + debug { + minifyEnabled true + shrinkResources true + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } release { - minifyEnabled false + minifyEnabled true + shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 481bb43..6a634e8 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -18,4 +18,26 @@ # If you keep the line number information, uncomment this to # hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file +#-renamesourcefileattribute SourceFile +-dontobfuscate + +### kotlinx.serialization https://github.com/Kotlin/kotlinx.serialization#android ### +-if @kotlinx.serialization.Serializable class ** +-keepclassmembers class <1> { + static <1>$Companion Companion; +} +-if @kotlinx.serialization.Serializable class ** { + static **$* *; +} +-keepclassmembers class <1>$<3> { + kotlinx.serialization.KSerializer serializer(...); +} +-if @kotlinx.serialization.Serializable class ** { + public static ** INSTANCE; +} +-keepclassmembers class <1> { + public static <1> INSTANCE; + kotlinx.serialization.KSerializer serializer(...); +} +-keepattributes RuntimeVisibleAnnotations,AnnotationDefault +### kotlinx.serialization https://github.com/Kotlin/kotlinx.serialization#android ###