fix(proguard): sdk-core 保留全部类名,其余模块加 -dontwarn 避免跨模块 R8 缺类错误
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
父节点
aac4bd7baa
当前提交
fbe2a6b677
1
sdk-bugcollect/proguard-rules.pro
vendored
1
sdk-bugcollect/proguard-rules.pro
vendored
@ -20,3 +20,4 @@
|
||||
-keepclassmembers class com.xuqm.sdk.bugcollect.** {
|
||||
@com.google.gson.annotations.SerializedName <fields>;
|
||||
}
|
||||
-dontwarn com.xuqm.sdk.**
|
||||
|
||||
26
sdk-core/proguard-rules.pro
vendored
26
sdk-core/proguard-rules.pro
vendored
@ -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.** { *; }
|
||||
|
||||
1
sdk-im/proguard-rules.pro
vendored
1
sdk-im/proguard-rules.pro
vendored
@ -9,3 +9,4 @@
|
||||
-keepclassmembers class com.xuqm.sdk.im.** {
|
||||
@com.google.gson.annotations.SerializedName <fields>;
|
||||
}
|
||||
-dontwarn com.xuqm.sdk.**
|
||||
|
||||
1
sdk-license/proguard-rules.pro
vendored
1
sdk-license/proguard-rules.pro
vendored
@ -13,3 +13,4 @@
|
||||
# Kotlinx serialization (used by this module)
|
||||
-keepclassmembers @kotlinx.serialization.Serializable class ** { *; }
|
||||
-keep class kotlinx.serialization.** { *; }
|
||||
-dontwarn com.xuqm.sdk.**
|
||||
|
||||
1
sdk-push/proguard-rules.pro
vendored
1
sdk-push/proguard-rules.pro
vendored
@ -11,3 +11,4 @@
|
||||
-keep class com.xuqm.sdk.push.vivo.XuqmVivoPushReceiver
|
||||
|
||||
-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod
|
||||
-dontwarn com.xuqm.sdk.**
|
||||
|
||||
1
sdk-update/proguard-rules.pro
vendored
1
sdk-update/proguard-rules.pro
vendored
@ -9,3 +9,4 @@
|
||||
-keepclassmembers class com.xuqm.sdk.update.** {
|
||||
@com.google.gson.annotations.SerializedName <fields>;
|
||||
}
|
||||
-dontwarn com.xuqm.sdk.**
|
||||
|
||||
4
sdk-webview/proguard-rules.pro
vendored
4
sdk-webview/proguard-rules.pro
vendored
@ -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.**
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户