日志日期 · 周一
ProGuard 7.10:支持 Kotlin 2.4,修复 mapping
ProGuard 7.10 增加 Kotlin 2.4 与 Java 27 支持,并修复方法内联时 mapping 文件损坏的问题。
当天发生了什么
2026-08-24 13:48(UTC),Guardsquare 在 GitHub 发布了 ProGuard 7.10(标签 v7.10.0)。发布说明列出三项:增加对 Kotlin 2.4 的支持;增加对 Java 27 的支持;修复一个在应用方法内联时会产生损坏 mapping 文件的问题(issue #520)。这是一次以兼容性和正确性为主的版本,没有新的保护功能。对仍在使用 ProGuard 而非 R8,或在桌面 Java、服务端 JVM 程序中使用 ProGuard 的团队来说,这意味着可以跟上较新的语言版本。
对保护应用逻辑意味着什么
mapping 文件是把混淆名还原回原名的钥匙。它出错时,最直接的后果是崩溃堆栈无法还原,团队容易因此放宽混淆甚至关闭重命名来换取可调试性,这是保护水平在不知不觉中倒退的常见路径。另一方面,语言版本跑在收缩工具支持之前时,团队也常用宽泛的 keep 规则「先绕过去」。这次更新本身不是安全修复,但它提醒:重命名与收缩只增加阅读成本,并不加密逻辑;而 mapping 文件本身是敏感资产,泄露它就等于抵消重命名。
可以做的检查
确认所用 ProGuard 版本支持项目的 Kotlin 与 Java 目标版本,避免为兼容而加的临时宽泛规则长期留存。升级后用一个人为触发的测试崩溃验证 mapping 文件能否正确还原堆栈,尤其在开启方法内联时。把 mapping 文件存放在私有制品库,不放进安装包、公开仓库或公开的崩溃平台项目。升级前后用 -printusage 与 -printseeds 输出对比被保留和被移除的内容,确认保护范围没有缩小。
行动清单
- 确认 ProGuard 支持当前 Kotlin 与 Java 目标版本
- 用测试崩溃验证 mapping 文件可正确还原
- 对比升级前后 -printseeds 与 -printusage 输出
原始资料
- GitHub: Guardsquare/proguard release 7.10 · 资料日期 2026-08-24 · 核对于 2026-10-12