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>
40 行
1.9 KiB
Prolog
40 行
1.9 KiB
Prolog
# sdk-push consumer ProGuard rules
|
|
|
|
# ── Public API entry point ────────────────────────────────────────────────────
|
|
-keep class com.xuqm.sdk.push.PushSDK { *; }
|
|
|
|
# ── Model classes ─────────────────────────────────────────────────────────────
|
|
-keep class com.xuqm.sdk.push.model.PushVendor { *; }
|
|
-keep class com.xuqm.sdk.push.model.PushRegistrationSnapshot { *; }
|
|
|
|
# ── Firebase Messaging Service — Android resolves it by class name ────────────
|
|
-keep class com.xuqm.sdk.push.fcm.XuqmFirebaseMessagingService { *; }
|
|
-keep class com.xuqm.sdk.push.huawei.XuqmHuaweiPushService { *; }
|
|
-keep class com.xuqm.sdk.push.honor.XuqmHonorPushService { *; }
|
|
-keep class com.xuqm.sdk.push.vivo.XuqmVivoPushReceiver { *; }
|
|
-keep class com.xuqm.sdk.push.xiaomi.XuqmXiaomiPushReceiver { *; }
|
|
|
|
# ── Vendor push services — instantiated via reflection inside PushSDK ─────────
|
|
-keep class com.xuqm.sdk.push.vendor.** { *; }
|
|
|
|
# ── Enum values used as strings ───────────────────────────────────────────────
|
|
-keepclassmembers enum com.xuqm.sdk.push.model.PushVendor {
|
|
public static **[] values();
|
|
public static ** valueOf(java.lang.String);
|
|
}
|
|
|
|
-keepattributes Signature
|
|
-keepattributes *Annotation*
|
|
-keepattributes Exceptions
|
|
-keepattributes InnerClasses, EnclosingMethod
|
|
|
|
# ── Optional deps (compileOnly) — suppress R8 missing-class warnings ──────────
|
|
-dontwarn com.google.android.gms.**
|
|
-dontwarn com.google.firebase.**
|
|
-dontwarn com.huawei.**
|
|
-dontwarn com.hihonor.**
|
|
-dontwarn io.github.hebeiliang.**
|
|
-dontwarn com.umeng.**
|
|
-dontwarn com.heytap.**
|
|
-dontwarn com.vivo.**
|