From fbe2a6b677f271adfdceb90b4147a139ea3e9611 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Tue, 23 Jun 2026 13:44:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(proguard):=20sdk-core=20=E4=BF=9D=E7=95=99?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E7=B1=BB=E5=90=8D=EF=BC=8C=E5=85=B6=E4=BD=99?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=8A=A0=20-dontwarn=20=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E8=B7=A8=E6=A8=A1=E5=9D=97=20R8=20=E7=BC=BA=E7=B1=BB=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- sdk-bugcollect/proguard-rules.pro | 1 + sdk-core/proguard-rules.pro | 26 +++++++------------------- sdk-im/proguard-rules.pro | 1 + sdk-license/proguard-rules.pro | 1 + sdk-push/proguard-rules.pro | 1 + sdk-update/proguard-rules.pro | 1 + sdk-webview/proguard-rules.pro | 4 ++++ 7 files changed, 16 insertions(+), 19 deletions(-) diff --git a/sdk-bugcollect/proguard-rules.pro b/sdk-bugcollect/proguard-rules.pro index 2389d6c..7378586 100644 --- a/sdk-bugcollect/proguard-rules.pro +++ b/sdk-bugcollect/proguard-rules.pro @@ -20,3 +20,4 @@ -keepclassmembers class com.xuqm.sdk.bugcollect.** { @com.google.gson.annotations.SerializedName ; } +-dontwarn com.xuqm.sdk.** diff --git a/sdk-core/proguard-rules.pro b/sdk-core/proguard-rules.pro index 0f358d1..aa8a2a9 100644 --- a/sdk-core/proguard-rules.pro +++ b/sdk-core/proguard-rules.pro @@ -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 ; } - -# Retrofit: keep service interfaces --keep,allowobfuscation interface com.xuqm.sdk.network.** { *; } diff --git a/sdk-im/proguard-rules.pro b/sdk-im/proguard-rules.pro index 5ba1b2e..e98098d 100644 --- a/sdk-im/proguard-rules.pro +++ b/sdk-im/proguard-rules.pro @@ -9,3 +9,4 @@ -keepclassmembers class com.xuqm.sdk.im.** { @com.google.gson.annotations.SerializedName ; } +-dontwarn com.xuqm.sdk.** diff --git a/sdk-license/proguard-rules.pro b/sdk-license/proguard-rules.pro index 71fcb6b..15f4f45 100644 --- a/sdk-license/proguard-rules.pro +++ b/sdk-license/proguard-rules.pro @@ -13,3 +13,4 @@ # Kotlinx serialization (used by this module) -keepclassmembers @kotlinx.serialization.Serializable class ** { *; } -keep class kotlinx.serialization.** { *; } +-dontwarn com.xuqm.sdk.** diff --git a/sdk-push/proguard-rules.pro b/sdk-push/proguard-rules.pro index c91109a..48cf70d 100644 --- a/sdk-push/proguard-rules.pro +++ b/sdk-push/proguard-rules.pro @@ -11,3 +11,4 @@ -keep class com.xuqm.sdk.push.vivo.XuqmVivoPushReceiver -keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod +-dontwarn com.xuqm.sdk.** diff --git a/sdk-update/proguard-rules.pro b/sdk-update/proguard-rules.pro index 7796794..63271a3 100644 --- a/sdk-update/proguard-rules.pro +++ b/sdk-update/proguard-rules.pro @@ -9,3 +9,4 @@ -keepclassmembers class com.xuqm.sdk.update.** { @com.google.gson.annotations.SerializedName ; } +-dontwarn com.xuqm.sdk.** diff --git a/sdk-webview/proguard-rules.pro b/sdk-webview/proguard-rules.pro index 29f49c8..172af79 100644 --- a/sdk-webview/proguard-rules.pro +++ b/sdk-webview/proguard-rules.pro @@ -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.**