代码之家  ›  专栏  ›  技术社区  ›  LizG

为什么已签署的发布版APK不允许用户登录,而已构建的调试版APK允许用户登录?

  •  0
  • LizG  · 技术社区  · 4 年前

    我在Google Play上有一个应用程序已经上线,但当第一个安装它的客户无法登录该应用程序时,另一位开发人员建议我生成一个签名的APK(文件名:app-release.APK),然后将其拖到我的模拟器上进行测试。我这样做了,但在尝试登录时遇到了一个错误,所以我取消发布该应用程序,直到我解决这个问题。

    然后我尝试构建一个APK,它给了我一个文件:app-debug.APK。我把它拖到我的模拟器上,并能够毫无问题地登录。

    我可能做错了什么?

    当我将应用程序从Android Studio运行到模拟器上时,它运行良好,并将我登录到我的Firebase数据库验证帐户中。

    2 回复  |  直到 4 年前
        1
  •  1
  •   Martin Zeitler    4 年前

    您可能已经为发布版本启用了模糊处理(R8),但没有编写所需的 -keep 规则。如果没有堆栈跟踪,这是一个相当理论化的问题,但很可能会显示 ClassNotFoundException ,因为某些类或类成员的名称已被混淆,不应该被混淆。

        2
  •  1
  •   auspicious99    4 年前

    您的项目可能正在使用为调试和发布版本指定不同的服务器。当您不想用调试/测试数据破坏发布数据库时,这是一种常见的做法。看见 this SO post 例如。我会检查一下你的建筑等级,看看是否能在那里发现这样的东西。

    因此,发布服务器可能已关闭,而调试服务器可能仍在运行。