Skip to content

Commit 18e1524

Browse files
Refine ProGuard rules for enhanced code optimization and compatibility
- Add various rules to keep classes and members used by kotlinx.serialization, kotlin, ktor, and other dependencies. - Add rules to avoid warnings for missing classes and to improve compatibility with libraries such as netty, com.google.common, ch.qos, org.slf4j, and com.fasterxml.jackson. - Add rules to handle Throwable addSuppressed method.
1 parent 0c7754b commit 18e1524

1 file changed

Lines changed: 87 additions & 1 deletion

File tree

composeApp/proguard-rules.pro

Lines changed: 87 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Tus reglas actuales
12
-keepattributes LineNumberTable,SourceFile
23
-renamesourcefileattribute SourceFile
34
-keeppackagenames org.jsoup.nodes
@@ -38,4 +39,89 @@
3839
-keep class io.ktor.client.plugins.* { *; }
3940
-keep class io.ktor.util.* { *;}
4041
-keep class io.ktor.utils.io.* { *; }
41-
-keep class java.lang.management.* { *; }
42+
-keep class java.lang.management.* { *; }
43+
44+
45+
-keepattributes *Annotation*
46+
47+
-keep class kotlin.Metadata { *; }
48+
49+
-keep class kotlin.reflect.jvm.internal.** { *; }
50+
-keep class kotlin.text.RegexOption { *; }
51+
52+
-keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
53+
-keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
54+
55+
-keepclassmembers class kotlinx.coroutines.** {
56+
volatile <fields>;
57+
}
58+
59+
-keepclassmembers class kotlin.coroutines.SafeContinuation {
60+
volatile <fields>;
61+
}
62+
63+
-dontwarn java.lang.instrument.ClassFileTransformer
64+
-dontwarn sun.misc.SignalHandler
65+
-dontwarn java.lang.instrument.Instrumentation
66+
-dontwarn sun.misc.Signal
67+
-dontwarn java.lang.ClassValue
68+
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
69+
70+
-if @kotlinx.serialization.Serializable class **
71+
-keepclassmembers class <1> {
72+
static <1>$Companion Companion;
73+
}
74+
75+
-if @kotlinx.serialization.Serializable class ** {
76+
static **$* *;
77+
}
78+
-keepclassmembers class <2>$<3> {
79+
kotlinx.serialization.KSerializer serializer(...);
80+
}
81+
82+
-if @kotlinx.serialization.Serializable class ** {
83+
public static ** INSTANCE;
84+
}
85+
-keepclassmembers class <1> {
86+
public static <1> INSTANCE;
87+
kotlinx.serialization.KSerializer serializer(...);
88+
}
89+
90+
-keepattributes RuntimeVisibleAnnotations,AnnotationDefault
91+
92+
-dontnote kotlinx.serialization.**
93+
94+
95+
-dontwarn kotlinx.serialization.internal.ClassValueReferences
96+
97+
98+
-keep class ch.qos.** { *; }
99+
-dontwarn ch.qos.**
100+
-keep class org.slf4j.** { *; }
101+
-dontwarn org.slf4j.**
102+
-dontwarn ch.qos.logback.core.net.*
103+
104+
105+
-dontwarn io.netty.**
106+
107+
108+
-dontwarn com.google.common.collect.**
109+
-dontwarn com.google.common.base.Converter
110+
-dontwarn com.google.common.cache.**
111+
-dontwarn com.google.common.util.concurrent.**
112+
-dontwarn com.google.common.eventbus.Subscriber
113+
-dontwarn com.google.common.eventbus.SubscriberRegistry
114+
-dontwarn com.google.common.hash.**
115+
-dontwarn javax.lang.model.element.Modifier
116+
-dontwarn sun.misc.Unsafe
117+
118+
119+
-keep class com.fasterxml.jackson.** { *; }
120+
-keep class com.fasterxml.jackson.databind.** { *; }
121+
-keep class com.fasterxml.jackson.module.kotlin.** { *; }
122+
-keep class com.fasterxml.jackson.databind.cfg.** { *; }
123+
124+
125+
-keep class java.lang.Throwable {
126+
*** addSuppressed(...);
127+
}

0 commit comments

Comments
 (0)