Google Play 崩溃跟踪去混淆

Posted

技术标签:

【中文标题】Google Play 崩溃跟踪去混淆【英文标题】:Google Play crash trace de-obfuscation 【发布时间】:2019-03-19 05:30:42 【问题描述】:

我已经构建了我的应用程序并将其上传到 Google Play,并提供了去混淆映射文件。 release 构建相当简单,即我已将 minifyEnabled 设置为 true 并且没有修改我的 proguard-rules.pro 文件。

我遇到的问题是 Google Play 无法对崩溃跟踪进行去混淆处理,并且我一直看到“此映射文件是在发生崩溃后上传的。此版本的所有未来崩溃都将被去混淆处理”信息。但是可以通过 ProGuard GUI 或retrace.sh 访问的 ProGuards ReTrace 能够追溯我的崩溃跟踪。

你遇到过同样的问题吗?您是如何解决这个问题的?

【问题讨论】:

Google Play 不会“返回”并对在映射文件上传之前发生的堆栈跟踪进行去混淆处理。 是的,但我一直收到同样的警告,尽管映射文件已上传并且新的崩溃仍未消除混淆。 您确定崩溃报告来自已上传映射文件的应用的完全相同版本吗?当然,您上传了正确的文件 (mapping.txt)? 是的,ProGuard 的retrace.sh 能够在提供相同的映射文件时取消混淆跟踪 我想,在这一点上,您可能会遇到 Google 方面的真正错误。我无法提供更多信息。但是,我确实想指出,您对上面第二个问题的回答并不意味着对第一个问题的回答是“是”。也就是说,仅仅因为 ReTrace 成功地对跟踪进行反混淆并不意味着应用程序版本与映射文件的版本相同。 Google 根据应用的 versionCode 查找要使用的映射文件。 【参考方案1】:

我怀疑您的应用的旧版本中的用户正在发生崩溃。这就是为什么即使崩溃是新的,它们也不能被混淆。找出发生崩溃的应用版本,并确保为该版本上传了映射文件。

如果映射文件肯定是正确的版本,并且崩溃仍然没有去混淆,那将是 Play 管理中心的一个错误。您应该通过 Play 管理中心的帮助菜单(问号图标后面)联系 Google Play 管理中心支持。

【讨论】:

在我的情况下不是这样,您可以将报告限制为当前版本,但我仍然遇到此问题 - 请参阅我对 OP 的评论以获取更多信息。【参考方案2】:

我发现唯一运行良好的是 Google Crashlytics。它很容易设置,它会在构建时自动上传去混淆图。我很久以前就放弃了 Google PlayStore 反混淆

【讨论】:

您能多谈谈 Crashlytics 吗? 我想说这是您可以阅读更多关于 Crashlytics 的最佳页面。 firebase.google.com/docs/crashlytics/get-started#android 嗯,看起来只有当您的应用包含我的不包含的 Firebase 时才有效。我将改为查看 retrace.sh。

以上是关于Google Play 崩溃跟踪去混淆的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 控制台堆栈跟踪

Google Play 控制台崩溃报告 - 多个 OR

google play store 警告:App Bundle 包含原生代码,建议上传去混淆文件

Google Play 控制台开发者监控错误

在Google Play Console中混淆“上传失败”消息

Google Play 服务登录崩溃