为什么我部署的 Android 应用程序不能登录到 Google Play 服务,而我的调试应用程序可以?

Why doesn't my deployed Android app sign into Google Play Services, while my debug app does?

我的 Android 应用登录 Google Play 游戏服务似乎无提示失败:在登录 activity 中选择用户后,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 调试它时,登录工作完美每次,所以我可以'甚至调试应用程序!

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

感谢 我找到了解决方案,但这种情况不同,因为它是由 Google Play Developer Console 中激活的功能引起的。

这个特定错误的关键是:

  1. 生产应用程序 曾经 正常工作,但现在不能正常工作了。
  2. 调试版本仍然工作正常。

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

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

解决方法是:

  • 停止咒骂;
  • usual Play Store developer Console;
  • 中访问发布管理下的应用程序签名选项
  • 复制 "App signing certificate" 下的 SHA-1 指纹( 而不是 指纹 "Upload certificate" -- 这就是让你陷入困境的原因);
  • 访问位于 Google's site for developers
  • 的凭据页面
  • select 你的应用程序
  • 将您刚刚复制的证书粘贴到标记为 "Signing-certificate fingerprint." 的文本字段中(该字段本身位于一些关于如何从您的密钥库中提取它的说明 -- 不要 在 Google 签署您的应用程序时使用这些说明!)

在这一点上,部署的版本对我来说就像魔术一样有效。无需编程!