Google play 登录(游戏) - 无法在生产环境中使用

Posted

技术标签:

【中文标题】Google play 登录(游戏) - 无法在生产环境中使用【英文标题】:Google play sign in (Games) - not working in production 【发布时间】:2020-09-10 17:21:00 【问题描述】:

我上传了我的游戏的新版本,并在其中添加了 google play 游戏集成

在我运行游戏时一切正常:

调试模式 发布模式(使用发布凭证构建 apk)

但是,当我将游戏发布到 Play 商店时,它无法正常工作。

这是登录代码:

 val intent = GoogleSignIn.getClient(this, GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
 startActivityForResult(intent.signInIntent, RC_SIGN_IN)

意图打开登录活动(顶部的“连接以玩游戏”),但立即关闭,调用我的 onActivityResult 方法。

我在 onActivityResult 中添加了一个 Toast,这样我就能看到错误:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?)

   super.onActivityResult(requestCode, resultCode, data)
   val result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
   Toast.makeText(this, result?.status.toString(), Toast.LENGTH_LONG).show()

Toast 显示“StatusstatusCode=SIGN_IN_REQUIRED, resolution=null”

我不明白,我只是打电话来登录意图。怎么解决的SIGN_IN_REQUIRED

我做过的事情:

我在游戏服务部分(Google play 控制台)创建了一个游戏,并将其连接到我的应用(游戏),然后发布了它。

我将发布密钥库的 SHA-1 添加到 Google API 控制台中的 OAuth 2.0 客户端 ID 部分 在 Firebase 控制台中连接游戏

我真的不知道还能做什么。

谢谢

【问题讨论】:

【参考方案1】:

如果您的应用已发布,它会使用 google 生成的密钥 SHA-1 以及您必须在 OAuth2 设置中设置的相同密钥进行签名。

【讨论】:

“由谷歌生成”是什么意思?我将发布密钥库的 SHA-1 添加到 Google API 控制台中的 OAuth 2.0 客户端 ID 部分 这确实是问题所在。我添加了发布(上传)密钥库,而不是谷歌自动生成的密钥库。谢谢【参考方案2】:

我一直在与同样的问题作斗争。您需要检查以下内容:

您的 apk 是否使用与您的 oauth 客户端 ID 相同的 SHA-1 签名?您是否需要添加额外的 oauth 客户端 ID? 您的测试用 google 帐号是否已添加到播放服务的测试帐号列表中? 您是否选择了 Play 商店签名,如果选择了,oauth 客户端 ID 中是否包含 SHA-1?

【讨论】:

测试帐户与无法在生产环境中运行的事实有何关系? 您说您上传到了 Play 商店的内部测试部分:“但是,当我将我的游戏上传到 Play 商店(内部测试)时,它无法正常工作。” 当我将它发布到生产环境时它也不起作用

以上是关于Google play 登录(游戏) - 无法在生产环境中使用的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 游戏服务 - 无法登录

Google play 登录(游戏) - 无法在生产环境中使用

删除 google play 游戏数据后卡住无法登录

无法登录 google play 游戏服务 API

为啥无法登录 Google Play 服务?

Unity Android 游戏可以使用 Google Play 游戏插件登录,但无法从排行榜加载分数