diff --git a/rules/common.pro b/rules/common.pro index 0fbddd5dd..7f830691d 100644 --- a/rules/common.pro +++ b/rules/common.pro @@ -2,7 +2,15 @@ # This avoids serializer lookup through `getDeclaredClasses` as done for named companion objects. -if @kotlinx.serialization.Serializable class ** -keepclassmembers class <1> { - static <1>$Companion Companion; + static <1>$* Companion; +} + +# Keep names for named companion object from obfuscation +# Names of a class and of a field are important in lookup of named companion in runtime +-keepnames @kotlinx.serialization.internal.NamedCompanion class * +-if @kotlinx.serialization.internal.NamedCompanion class * +-keepclassmembernames class * { + static <1> *; } # Keep `serializer()` on companion objects (both default and named) of serializable classes.