Google Play 控制台报告未发布的应用程序崩溃

Posted

技术标签:

【中文标题】Google Play 控制台报告未发布的应用程序崩溃【英文标题】:Google Play console reporting crashes from unreleased applications 【发布时间】:2017-10-23 17:43:41 【问题描述】:

我想分享一个我在分析 Google Play 控制台新功能时遇到的情况,并尝试找到解决方案。

许多人可能已经知道,Google 已经在 Google Play 控制台上发布了更新并引入了 android Vitals。一个很好的特点是,现在会话 ANR 和崩溃显示了从用户已选择自动共享使用情况和诊断数据(在手机首次设置期间)的 Android 设备收集的所有 ANR 和崩溃。

但是,我看到来自未发布应用程序的崩溃报告。我的意思是,来自尚未发布的开发人员版本。此外,这个崩溃报告来自一个使用 android-debug 密钥签名的应用程序,而不是我的生产密钥。我查看了可用的文档,但找不到有关过滤这些报告的详细信息。

在不验证签名的情况下使用任何收入数据对我来说似乎是有害和错误的,因为任何人都可以简单地编写一段简短的代码并开始用大量的虚拟堆栈跟踪淹没特定的应用程序包名称。

你知道这是否是这个新工具的正常行为吗?

【问题讨论】:

我今天也遇到了这种情况。查看我在设备上使用的应用程序的调试版本中的所有崩溃报告。我认为 Google 应该添加某种过滤以仅正确显示崩溃报告已签名的应用程序。 我遇到了同样的问题。我在 Google 的问题跟踪器中创建了一个问题:issuetracker.google.com/issues/64929012 如果您希望该问题得到 Google 的更多关注,可以加注星标。 感谢分享@ipanag。 【参考方案1】:

开发者控制台仅报告已发布的版本号(alpha、beta 或生产)导致的崩溃。

所以我的解决方法很简单:

    发布新版本后,我要做的第一件事就是增加清单中的 versionCode。而且我在开发时只使用这个版本号。这样,就不会将崩溃发送到控制台。 然后,当我准备好再次发布时,我再次增加 versionCode。这样我可以确保新的崩溃只会来自已发布的版本。

编辑:

来自未发布版本的崩溃仍会显示在控制台上的“所有版本”选项下。因此,请将此答案作为识别和过滤这些崩溃的一种方式,而不是阻止它们被记录。

【讨论】:

我现在做同样的事情,但我也添加了一堆零。所以 34 发布后,我立即将其更改为 3500,这样谷歌就无法找到它。它会在所有版本下,但很明显,因为我的下一个版本是 35 并且远低于 3500,所以应该很清楚。【参考方案2】:

由于我们有兴趣只发布发布应用程序,我们可能会采用以下策略来摆脱混乱的崩溃报告:

./build.gradle:

android 
    ...
    defaultConfig 
        applicationId "my.app.package"
        ...
    
    ...
    buildTypes 
        release 
            ...
        
        debug 
            ...
            applicationIdSuffix ".dev"
        
    
...

【讨论】:

嗨,你能帮帮我吗,我也在控制台中获取崩溃报告。当我添加applicationIdSuffix“.dev”时,它说“没有为包名'my.app.package.dev'找到匹配的客户端” 嗨@DemoMail,很抱歉回复晚了。您在何时何地看到该消息?您是否正在尝试将具有此 applicationIdSuffix ".dev" 的应用程序发布在与没有它的应用程序相同的空间中? @Rafael 这是一个不错的解决方案,但是当使用配置了 applicationId 的库时它可能会破坏事情,例如我使用这种方法我不再能够在我的应用程序中测试应用程序计费跨度> 在我更新到 API 26 后,今天才开始发生这种情况。我的所有模拟器崩溃都出现了,无法看到实际的崩溃。来谷歌吧! 我看到了@AkashKumar。这真的可以把事情搞砸。如果可以更改库代码,我建议您以相同的方式编辑 applicationId 来解决它,直到 Google 为这种情况提供长期修复。请参阅 ipanag 的上述评论。【参考方案3】:

我也遇到了同样的问题。 当我转到所有应用程序 -> -> 仪表板 -> 崩溃时,它会显示崩溃报告

但是,如果我直接转到 Android Vitals -> ANRs & crashs,它不会显示任何内容。

无论如何,对于第一种情况,您可以点击“查看详细信息”并从报告的每种崩溃类型的下拉菜单中选择“隐藏”。

这只是一个临时修复,但我认为 Google 必须为此提供适当的修复。

【讨论】:

有关于这种行为的消息吗?

以上是关于Google Play 控制台报告未发布的应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Google Play控制台预发布报告 - 内存

Google Play 控制台报告应用程序崩溃,我无法重现

Google Play 控制台崩溃报告与我的应用无关

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

如何从 Google Play 控制台帐户中删除未发布的 apk

Google Play 控制台未推出更新(单击了推出按钮)