-ignorewarnings # Rules for: uCrop - Image Cropping Library for Android -dontwarn com.yalantis.ucrop** -dontwarn java.lang.management.ManagementFactory -keep class com.yalantis.ucrop** { *; } -keep interface com.yalantis.ucrop** { *; } # Proguard Kotlin Example https://github.com/Guardsquare/proguard/blob/master/examples/application-kotlin/proguard.pro -keepattributes *Annotation* -keep class kotlin.Metadata { *; } # Kotlin -keep class kotlin.reflect.jvm.internal.** { *; } -keep class kotlin.text.RegexOption { *; } -keep class kotlin.** { *; } -keep class org.jetbrains.skia.** { *; } -keep class org.jetbrains.skiko.** { *; } -assumenosideeffects public class androidx.compose.runtime.ComposerKt { void sourceInformation(androidx.compose.runtime.Composer,java.lang.String); void sourceInformationMarkerStart(androidx.compose.runtime.Composer,int,java.lang.String); void sourceInformationMarkerEnd(androidx.compose.runtime.Composer); boolean isTraceInProgress(); void traceEventEnd(); } # Kotlinx Coroutines Rules # https://github.com/Kotlin/kotlinx.coroutines/blob/master/kotlinx-coroutines-core/jvm/resources/META-INF/proguard/coroutines.pro -keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {} -keepnames class kotlinx.coroutines.CoroutineExceptionHandler {} -keepclassmembers class kotlinx.coroutines.** { volatile ; } -keepclassmembers class kotlin.coroutines.SafeContinuation { volatile ; } -dontwarn java.lang.instrument.ClassFileTransformer -dontwarn sun.misc.SignalHandler -dontwarn java.lang.instrument.Instrumentation -dontwarn sun.misc.Signal -dontwarn java.lang.ClassValue -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement # https://github.com/Kotlin/kotlinx.coroutines/issues/2046 -dontwarn android.annotation.SuppressLint # https://github.com/JetBrains/compose-jb/issues/2393 -dontnote kotlin.coroutines.jvm.internal.** -dontnote kotlin.internal.** -dontnote kotlin.jvm.internal.** -dontnote kotlin.reflect.** -dontnote kotlinx.coroutines.debug.internal.** -dontnote kotlinx.coroutines.internal.** -keep class kotlin.coroutines.Continuation -keep class kotlinx.coroutines.CancellableContinuation -keep class kotlinx.coroutines.channels.Channel -keep class kotlinx.coroutines.CoroutineDispatcher -keep class kotlinx.coroutines.CoroutineScope # this is a weird one, but breaks build on some combinations of OS and JDK (reproduced on Windows 10 + Corretto 16) -dontwarn org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules_MatchStatementSet* ### kotlinx.serialization rules # Keep `Companion` object fields of serializable classes. # This avoids serializer lookup through `getDeclaredClasses` as done for named companion objects. -if @kotlinx.serialization.Serializable class ** -keepclassmembers class <1> { static <1>$Companion Companion; } # Keep `serializer()` on companion objects (both default and named) of serializable classes. -if @kotlinx.serialization.Serializable class ** { static **$* *; } -keepclassmembers class <2>$<3> { kotlinx.serialization.KSerializer serializer(...); } # Keep `INSTANCE.serializer()` of serializable objects. -if @kotlinx.serialization.Serializable class ** { public static ** INSTANCE; } -keepclassmembers class <1> { public static <1> INSTANCE; kotlinx.serialization.KSerializer serializer(...); } # @Serializable and @Polymorphic are used at runtime for polymorphic serialization. -keepattributes RuntimeVisibleAnnotations,AnnotationDefault # Don't print notes about potential mistakes or omissions in the configuration for kotlinx-serialization classes # See also https://github.com/Kotlin/kotlinx.serialization/issues/1900 -dontnote kotlinx.serialization.** # Serialization core uses `java.lang.ClassValue` for caching inside these specified classes. # If there is no `java.lang.ClassValue` (for example, in Android), then R8/ProGuard will print a warning. # However, since in this case they will not be used, we can disable these warnings -dontwarn kotlinx.serialization.internal.ClassValueReferences # JSR 305 annotations are for embedding nullability information. -dontwarn javax.annotation.** # A resource is loaded with a relative path so the package of this class must be preserved. -keeppackagenames okhttp3.internal.publicsuffix.* -adaptresourcefilenames okhttp3/internal/publicsuffix/PublicSuffixDatabase.gz # Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java. -dontwarn org.codehaus.mojo.animal_sniffer.* # OkHttp platform used only on JVM and when Conscrypt and other security providers are available. -dontwarn okhttp3.internal.platform.** -dontwarn org.conscrypt.** -dontwarn org.bouncycastle.** -dontwarn org.openjsse.** -keep class io.ktor.** { *; } -keep class kotlinx.serialization.** { *; } -keep class io.ktor.client.network.sockets.** { *; } -keep class io.ktor.client.plugins.* { *; } -keep class io.ktor.util.* { *; } -keep class io.ktor.utils.io.* { *; } -keep class java.lang.management.* { *; } -dontwarn io.ktor.client.network.sockets.SocketTimeoutException -dontwarn java.lang.management.RuntimeMXBean -keep class org.mifospay.core.network.services.* { *;} -keep class de.jensklingenberg.ktorfit.converter.** { *; } -keep class de.jensklingenberg.ktorfit.** { *; } -keeppackagenames de.jensklingenberg.ktorfit.*