fix(proguard): sdk-core 保留全部类名,其余模块加 -dontwarn 避免跨模块 R8 缺类错误

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
XuqmGroup 2026-06-23 13:44:19 +08:00
父节点 aac4bd7baa
当前提交 fbe2a6b677
共有 7 个文件被更改,包括 16 次插入19 次删除

查看文件

@ -20,3 +20,4 @@
-keepclassmembers class com.xuqm.sdk.bugcollect.** {
@com.google.gson.annotations.SerializedName <fields>;
}
-dontwarn com.xuqm.sdk.**

查看文件

@ -1,29 +1,17 @@
# ── Public API entry points ───────────────────────────────────────────────────
-keep public class com.xuqm.sdk.XuqmSDK { public *; }
-keep public class com.xuqm.sdk.XuqmLoginSession { public *; }
-keep public class com.xuqm.sdk.XuqmUserInfo { public *; }
-keep public class com.xuqm.sdk.core.** { public *; }
-keep public class com.xuqm.sdk.file.FileSDK { public *; }
-keep public class com.xuqm.sdk.file.FileUploadResult { public *; }
# sdk-core is the base dependency for all other SDK modules.
# Renaming its classes would break the cross-module class references at runtime
# (each module's R8 sees sdk-core's minified output as classpath).
# Strategy: dead-code elimination only, no renaming.
-keep class com.xuqm.sdk.** { *; }
# Compose UI components referenced directly by consumers
-keep public class com.xuqm.sdk.ui.** { public *; }
# ContentProviders: class names referenced in AndroidManifest must not be renamed
-keep class com.xuqm.sdk.internal.XuqmInitializerProvider
-keep class com.xuqm.sdk.internal.XuqmMergedProvider
# Kotlin & Annotation metadata
# Kotlin & annotation metadata (required by kotlinx.serialization and Compose)
-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod
# Kotlinx serialization
-keepclassmembers @kotlinx.serialization.Serializable class ** { *; }
-keep class kotlinx.serialization.** { *; }
# Gson field names used in network models
# Gson field names in network models
-keepclassmembers class com.xuqm.sdk.** {
@com.google.gson.annotations.SerializedName <fields>;
}
# Retrofit: keep service interfaces
-keep,allowobfuscation interface com.xuqm.sdk.network.** { *; }

查看文件

@ -9,3 +9,4 @@
-keepclassmembers class com.xuqm.sdk.im.** {
@com.google.gson.annotations.SerializedName <fields>;
}
-dontwarn com.xuqm.sdk.**

查看文件

@ -13,3 +13,4 @@
# Kotlinx serialization (used by this module)
-keepclassmembers @kotlinx.serialization.Serializable class ** { *; }
-keep class kotlinx.serialization.** { *; }
-dontwarn com.xuqm.sdk.**

查看文件

@ -11,3 +11,4 @@
-keep class com.xuqm.sdk.push.vivo.XuqmVivoPushReceiver
-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod
-dontwarn com.xuqm.sdk.**

查看文件

@ -9,3 +9,4 @@
-keepclassmembers class com.xuqm.sdk.update.** {
@com.google.gson.annotations.SerializedName <fields>;
}
-dontwarn com.xuqm.sdk.**

查看文件

@ -6,3 +6,7 @@
# Compose @Composable functions require annotation and signature retention
-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod
# sdk-core internal classes (auth/network) appear "missing" after sdk-core's R8 pass
# when both modules build in the same Gradle invocation; suppress to allow compilation
-dontwarn com.xuqm.sdk.**