Google Play 游戏服务错误:无法登录 - 应用程序没有注册的客户端 ID?其他修复不起作用



任何可能相关的次要信息:

  • 在 Unity3d 游戏引擎中使用 C#
  • 应用程序需要使用谷歌obb下载器和谷歌IAB(两者都可以正常工作(
  • 使用 Prime31 插件访问以下内容:
  • 同时使用成就和排行榜(我认为身份验证问题?
  • 应用程序连接并发布到Facebook(正常工作(

无法登录 - 应用程序没有注册的客户端 ID

以前我在连接谷歌玩游戏服务时遇到问题。似乎我的证书指纹中的 SHA1 代码与我在游戏服务链接应用程序中的代码(它放置在那里的默认 SHA1(中的代码不同。不幸的是,我已经发布了,所以我不得不取消发布应用程序,取消发布游戏服务,然后重新创建它们。我使用了我生成的全新密钥库(尽管别名相同(,并确保 SHA1 代码是从该密钥库生成并放入链接的应用程序中的。

这奏效了!我用我所有的成就和排行榜在设备上测试了它,一切都很顺利。经过几次快速代码/数据更改(文本更新、注释代码等(后,我重建了项目并上传了新的 apk 和 obb。然后,在发布后,它不再工作,返回错误:无法登录 - 应用程序没有注册的客户端 ID。

这就是我发现Google API Console的地方。在那里,我发现我当前的良好客户端 ID 和旧的客户端 ID(具有旧密钥库和错误 SHA1 的客户端 ID(仍然存在。为了安全起见,我删除了不再使用的旧版本。将当前客户端 ID 中的信息与游戏服务控制台和我保存的密钥库证书输出进行比较,一切似乎都是正确的。

如果这很重要,我在构建项目时没有将 .keystore 文件保存在项目中。任何帮助都非常感谢,如果我放了太多信息,不想错过任何东西,请道歉。谢谢!

*

编辑 1 *

我发现了一些事情,并在尝试登录期间注意到另一个奇怪的错误,这可能更接近问题?

我首先得到这个,当它连接时立即得到:

    Authentication error: Unable to respond to any of these challenges: {bearer=WWW-
    Authenticate: Bearer realm="https://www.google.com/accounts/AuthSubRequest",
    error=invalid_token}

以下是在我发布的原始错误之前出现的几个:

    E/Volley  ( 3928): [25080] iu.a: Unexpected response code 401 for
    https://www.googleapis.com/games/v1/players/#####################
    E/SignInIntentService( 2620): There is no linked app associated with this client ID.
    ... about 10 lines of irrelavant android output
    E/LoadSelfFragment( 2925): Unable to Sign in - Application does not have a
    registered client id

我可能忘记了新的附加信息:我目前在加拿大为总部位于美国的公司签署证书。会不会是察觉到了什么问题?我对此表示怀疑,但以防万一。

仍然没有遗憾地解决。

您是否从发布密钥中输入了正确的 SHA1 指纹这是链接的应用程序部分,你真的应该有 2 个键,我开发一个版本链接

keytool -exportcert -alias androiddebugkey -keystore <PATH_TO_YOUR_KEY_FILE> -v -list

最新更新