为啥我部署的 Android 应用无法登录 Google Play 服务,而我的调试应用却可以登录?

Posted

技术标签:

【中文标题】为啥我部署的 Android 应用无法登录 Google Play 服务,而我的调试应用却可以登录?【英文标题】:Why doesn't my deployed Android app sign into Google Play Services, while my debug app does?为什么我部署的 Android 应用无法登录 Google Play 服务,而我的调试应用却可以登录? 【发布时间】:2018-03-08 07:56:25 【问题描述】:

我的 android 应用登录 Google Play 游戏服务似乎静默失败:在登录活动中选择用户后,onActivityResult() 收到 resultCode 值 10002。Android API 将这些消息存储在 logcat 中:

W/SignInActivity(16216): onSignInFailed()...
W/SignInActivity(16216): Sign in failed during 6
W/SignInActivity(16216): ==> Returning non-OK result: 10002

当我在onActivityResult() 中放置的 Log.w() 命令存放这些消息时:

W/Main activity(16167): In activity result with code 10002
W/Main activity(16167): activity result requests sign in
W/Main activity(16167): unsolved resolution

奇怪的是它曾经可以工作,而当我尝试从 Android Studio 调试它时,每次登录都可以正常工作,所以我什至无法调试应用程序!

我可以从哪里开始调试这个?

【问题讨论】:

【参考方案1】:

感谢a problem with the same error but a completely different cause,我找到了解决方案,但这种情况不同,它是由激活 Google Play 开发者控制台中的功能引起的。

这个特定错误的关键是:

    生产应用使用可以正常工作,但现在不能正常工作了。 调试版本仍然正常工作。

早在 5 月,Google 就推出了一项功能,其中 they sign your app in the Play Store。我的原始应用程序是使用 Android Studio 生成的证书进行签名的,但是 Google 似乎对他们的签名非常***,所以我在没有仔细阅读细则的情况下切换到了那个。结果:

对于调试应用,Google Play Games API 需要调试证书,而 Android Studio 仍使用该证书生成调试 apk,因此 Games API 在调试时通常会接受登录。 对于生产应用程序,API 需要 Android Studio 生成的生产证书,Android Studio 很乐意提供,但 Google Play 替换为自己的证书,因此游戏 API 经常拒绝登录。

解决办法是:

别再骂人了; 访问usual Play Store developer Console 中发布管理下的应用签名选项; 复制“应用签名证书”下的 SHA-1 指纹(不是指纹“上传证书”——这就是让您陷入困境的原因); 访问证书页面Google's site for developers 选择您的应用 将您刚刚复制的证书粘贴到标有“签名证书指纹”的文本字段中。 (该字段本身位于一些关于如何从您的密钥库中提取它的说明下方 - 不要在 Google 为您的应用签名时使用这些说明!)

此时,已部署的版本对我来说就像魔术一样工作。无需编程!

【讨论】:

以上是关于为啥我部署的 Android 应用无法登录 Google Play 服务,而我的调试应用却可以登录?的主要内容,如果未能解决你的问题,请参考以下文章

关于 CORS,为啥我部署的 Azure 应用程序适用于除一个用户之外的所有人?

为啥无法在 aws elasticbeanstalk 上登录我的 springboot 应用程序?

为啥 Fabric “Fabric iOS 和 Android 移动应用程序将于 2018 年 11 月 30 日停用。在此日期之后,您将无法登录应用程序”?

为啥我部署了项目,也启动了weblogic服务,为啥打开网页依然是该也无法显示?

IIS配置后本地访问正常,但外网无法访问

Android Push - 第三方服务器无法登录 Google GCM 以被列入白名单