Unity 接入微信 SDK 的 ProGuard 混淆白名单配置指南
引言:混淆开启后 SDK 集体失效微信 SDK 接入完成、桥接代码写完,开启混淆后登录无响应、分享回调丢失、支付闪退——日志里的 ClassNotFoundException 指向被混淆掉的 SDK 类。根源是微信 SDK 大量依赖反射调用与 Intent 组件跳转,混淆重命名类名后整条调用链崩溃。这类问题只在开启混淆的发布包暴露,是"开发期正常、上线翻车"的典型。一、白名单的原理与核心规则1.1 反射与组件跳转为何惧怕混淆两类机制要求类名与成员签名保持稳定:反射调用:SDK 通过 Class.forName 与序列化机制加载请求/响应模型类,类名混淆后查找失败;组件跳转:微信客户端通过 Intent 回调应用的 WXEntryActivity/WXPayEntryActivity,组件名在 Manifest 与包结构中固定,重命名即 ActivityNotFoundException。1.2 最小保留规则# 微信开放平台 SDK 整包保留(反射调用基础) -keep class com.tencent.mm.opensdk.** { *; } # 应用侧回调 Activity:包名替换为真实包名(微信要求位于 包名.wxapi 下) -keep class com.yourcompany.yourgame.wxapi.WXEntryActivity { *; } -keep class com.yourcompany.your