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 登录(游戏) - 无法在生产环境中使用的主要内容,如果未能解决你的问题,请参考以下文章