55# For more details, see
66# http://developer.android.com/guide/developing/tools/proguard.html
77
8- # If your project uses WebView with JS, uncomment the following
9- # and specify the fully qualified class name to the JavaScript interface
10- # class:
11- #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12- # public *;
13- #}
14-
15- # Uncomment this to preserve the line number information for
16- # debugging stack traces.
17- #-keepattributes SourceFile,LineNumberTable
18-
19- # If you keep the line number information, uncomment this to
20- # hide the original source file name.
21- #-renamesourcefileattribute SourceFile
8+ # Keep line number information for debugging stack traces.
9+ -keepattributes SourceFile,LineNumberTable
10+ -renamesourcefileattribute SourceFile
11+
12+ # ========================
13+ # Project Classes
14+ # ========================
15+ -keep class com.neki.android.** { *; }
16+ -keepclassmembers class com.neki.android.** { *; }
17+
18+ # ========================
19+ # Kotlin
20+ # ========================
21+ -keep class kotlin.Metadata { *; }
22+ -keepattributes RuntimeVisibleAnnotations
23+ -keepattributes *Annotation*
24+
25+ # Kotlin Coroutines
26+ -keepnames class kotlinx.coroutines.internal.MainDispatcherFactory {}
27+ -keepnames class kotlinx.coroutines.CoroutineExceptionHandler {}
28+ -keepclassmembers class kotlinx.coroutines.** {
29+ volatile <fields>;
30+ }
31+ -keepclassmembernames class kotlinx.** {
32+ volatile <fields>;
33+ }
34+
35+ # ========================
36+ # Ktor
37+ # ========================
38+ -keep class io.ktor.** { *; }
39+ -keepclassmembers class io.ktor.** { *; }
40+ -dontwarn io.ktor.**
41+
42+ # ========================
43+ # kotlinx.serialization
44+ # ========================
45+ -keepattributes *Annotation*, InnerClasses
46+ -dontnote kotlinx.serialization.AnnotationsKt
47+
48+ -keepclassmembers @kotlinx.serialization.Serializable class ** {
49+ *** Companion;
50+ }
51+ -if @kotlinx.serialization.Serializable class **
52+ -keepclassmembers class <1>$Companion {
53+ kotlinx.serialization.KSerializer serializer(...);
54+ }
55+ -if @kotlinx.serialization.Serializable class ** {
56+ static **$* *;
57+ }
58+ -keepclassmembers class <2>$<3> {
59+ kotlinx.serialization.KSerializer serializer(...);
60+ }
61+ -if @kotlinx.serialization.Serializable class ** {
62+ public static ** INSTANCE;
63+ }
64+ -keepclassmembers class <1> {
65+ public static <1> INSTANCE;
66+ kotlinx.serialization.KSerializer serializer(...);
67+ }
68+ -keepclassmembers class * {
69+ @kotlinx.serialization.SerialName <fields>;
70+ }
71+ -keep,includedescriptorclasses class com.neki.android.**$$serializer { *; }
72+ -keepclassmembers class com.neki.android.** {
73+ *** Companion;
74+ }
75+
76+ # ========================
77+ # Kakao SDK
78+ # ========================
79+ -keep class com.kakao.sdk.** { *; }
80+ -keepclassmembers class com.kakao.sdk.** { *; }
81+ -dontwarn com.kakao.sdk.**
82+
83+ # Kakao SDK enums (TokenNotFound 등)
84+ -keepclassmembers enum com.kakao.sdk.** {
85+ public static **[] values();
86+ public static ** valueOf(java.lang.String);
87+ <fields>;
88+ }
89+
90+ # ========================
91+ # Hilt / Dagger
92+ # ========================
93+ -keep class dagger.** { *; }
94+ -keep class javax.inject.** { *; }
95+ -keep class * extends dagger.hilt.android.internal.managers.ComponentSupplier { *; }
96+ -keep class * extends dagger.hilt.android.internal.managers.ViewComponentManager$FragmentContextWrapper { *; }
97+ -keepclassmembers class * {
98+ @dagger.hilt.* <fields>;
99+ @dagger.hilt.* <methods>;
100+ @javax.inject.* <fields>;
101+ @javax.inject.* <methods>;
102+ }
103+ -dontwarn dagger.internal.codegen.**
104+ -dontwarn dagger.hilt.internal.**
105+
106+ # ========================
107+ # Android / Jetpack
108+ # ========================
109+ # Lifecycle
110+ -keep class androidx.lifecycle.** { *; }
111+ -keepclassmembers class * implements androidx.lifecycle.LifecycleObserver {
112+ <init>(...);
113+ }
114+
115+ # Navigation
116+ -keep class androidx.navigation.** { *; }
117+
118+ # Compose
119+ -keep class androidx.compose.** { *; }
120+ -dontwarn androidx.compose.**
121+
122+ # DataStore
123+ -keep class androidx.datastore.** { *; }
124+ -keepclassmembers class * extends com.google.protobuf.GeneratedMessageLite {
125+ <fields>;
126+ }
127+
128+ # Paging
129+ -keep class androidx.paging.** { *; }
130+
131+ # ========================
132+ # Enums (General)
133+ # ========================
134+ -keepclassmembers enum * {
135+ public static **[] values();
136+ public static ** valueOf(java.lang.String);
137+ <fields>;
138+ }
139+
140+ # ========================
141+ # Timber
142+ # ========================
143+ -dontwarn org.jetbrains.annotations.**
144+
145+ # ========================
146+ # OSS Licenses
147+ # ========================
148+ -keep class com.google.android.gms.oss.licenses.** { *; }
149+
150+ # ========================
151+ # Coil
152+ # ========================
153+ -keep class coil3.** { *; }
154+ -dontwarn coil3.**
155+
156+ # ========================
157+ # Naver Maps
158+ # ========================
159+ -keep class com.naver.maps.** { *; }
160+ -dontwarn com.naver.maps.**
161+
162+ # ========================
163+ # OkHttp (used by Coil)
164+ # ========================
165+ -dontwarn okhttp3.**
166+ -dontwarn okio.**
167+ -keep class okhttp3.** { *; }
168+ -keep class okio.** { *; }
169+
170+ # ========================
171+ # ML Kit Barcode
172+ # ========================
173+ -keep class com.google.mlkit.** { *; }
174+ -dontwarn com.google.mlkit.**
175+
176+ # ========================
177+ # Play Services
178+ # ========================
179+ -keep class com.google.android.gms.** { *; }
180+ -dontwarn com.google.android.gms.**
181+
182+ # ========================
183+ # CameraX
184+ # ========================
185+ -keep class androidx.camera.** { *; }
186+ -dontwarn androidx.camera.**
187+
188+ # ========================
189+ # Missing class warnings suppression
190+ # ========================
191+ -dontwarn java.lang.invoke.StringConcatFactory
192+ -dontwarn org.slf4j.**
193+ -dontwarn org.bouncycastle.**
194+ -dontwarn org.conscrypt.**
195+ -dontwarn org.openjsse.**
0 commit comments