Android 库模块开启 isMinifyEnabled=true 时,R8 各自独立混淆, 将内部类重命名为 a.a / a.b 等短名打进 AAR;多个 AAR 合并到 App 时产生 Duplicate class 冲突。 修复:删除全部 7 个库模块 buildTypes.release 中的 isMinifyEnabled, 混淆由 App 的 R8 统一完成。将 proguard-rules.pro 中的保留规则 (manifest 注册类、反射调用入口、dontwarn)合并进各模块的 consumer-rules.pro 随 AAR 打包。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
32 行
1.7 KiB
Prolog
32 行
1.7 KiB
Prolog
# sdk-core consumer ProGuard rules
|
|
# These rules are applied to apps that depend on sdk-core.
|
|
|
|
# ── Public API entry points ───────────────────────────────────────────────────
|
|
-keep class com.xuqm.sdk.XuqmSDK { *; }
|
|
-keep class com.xuqm.sdk.XuqmLoginSession { *; }
|
|
-keep class com.xuqm.sdk.core.SDKConfig { *; }
|
|
-keep class com.xuqm.sdk.core.LogLevel { *; }
|
|
-keep class com.xuqm.sdk.core.ServiceEndpoints { *; }
|
|
-keep class com.xuqm.sdk.core.ServiceEndpointRegistry { *; }
|
|
|
|
# ── File SDK ──────────────────────────────────────────────────────────────────
|
|
-keep class com.xuqm.sdk.file.FileSDK { *; }
|
|
-keep class com.xuqm.sdk.file.FileUploadResult { *; }
|
|
-keep class com.xuqm.sdk.file.ApiResponse { *; }
|
|
-keepclassmembers class com.xuqm.sdk.file.ApiResponse { *; }
|
|
|
|
# ── Gson: preserve field names on all SDK model classes ──────────────────────
|
|
-keepclassmembers class com.xuqm.sdk.** {
|
|
@com.google.gson.annotations.SerializedName <fields>;
|
|
}
|
|
|
|
# ── Kotlinx serialization ─────────────────────────────────────────────────────
|
|
-keepclassmembers @kotlinx.serialization.Serializable class ** { *; }
|
|
-keep class kotlinx.serialization.** { *; }
|
|
|
|
# ── Retrofit / OkHttp (belt-and-suspenders; they ship their own rules) ────────
|
|
-keepattributes Signature
|
|
-keepattributes *Annotation*
|
|
-keepattributes Exceptions
|
|
-keepattributes InnerClasses, EnclosingMethod
|