From 5e75ea700c5fb6e03fddbdcfd8db2231377f452c Mon Sep 17 00:00:00 2001 From: merkost Date: Wed, 5 Jul 2023 18:43:35 +1000 Subject: [PATCH] Added proguard rules for kotlinx.serialization --- app/proguard-rules.pro | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index e69de29b..0e50f379 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -0,0 +1,23 @@ +# 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(...); +}