使用上传密钥而不是 Google Play 应用签名密钥测试游戏服务

Posted

技术标签:

【中文标题】使用上传密钥而不是 Google Play 应用签名密钥测试游戏服务【英文标题】:Testing Games Services using upload key instead of Google Play App signing key 【发布时间】:2019-05-09 18:17:12 【问题描述】:

我目前已为我的应用设置并运行 GPGS。在使用上传密钥调试我的应用程序时,我遇到了一些功能问题。我按照此处的步骤操作:https://***.com/a/45270329/5434860 并且能够在使用使用 Google 保存在安全服务器上的安全“应用程序签名密钥”签名的应用程序时登录 Google,并且能够使用使用我的“上传”签名的应用程序登录钥匙”。 (我有两个 OAuth 2.0 客户端 ID。一个用于生产,一个用于调试)

我的问题类似于Test Google Play Games on app signed with upload key 和android RealTimeMultiplayer onRoomCreated getting status 2 : STATUS_CLIENT_RECONNECT_REQUIRED。虽然我可以使用使用上传密钥签名的应用程序登录,但实际上我无法完全测试我使用的不同游戏服务。这两个问题都没有解决。

例如,在尝试测试实时多人游戏时,我会在 onRoomCreated 中获得状态代码 2 (CLIENT_RECONNECT_REQUIRED)。这只发生在我使用使用上传密钥签名的应用程序时。为了全面测试这一点,我必须在我的 Google Play 控制台上创建一个内部版本。当我这样做时,多人游戏、成就和排行榜功能齐全,我能够对其进行测试。

我还关闭了反盗版功能,所以这不是问题。如果我从 console.developers.google.com 中删除 OAuth 凭据,它将无法登录,但是当我重新添加它时,它仍然不能完全正常工作,因为我唯一能做的就是登录。

目前,我的游戏服务项目已发布,我正在尝试允许两个 SHA1 密钥访问它。虽然我可以使用上传密钥登录,但我希望能够全面测试我的应用,而不必每次都创建新的内部版本,以便使用正确的密钥对其进行签名。

我真的希望能够测试游戏服务,而无需每次都将其上传到 Google Play 控制台。

【问题讨论】:

【参考方案1】:

一个月前,我就这个问题联系了谷歌,虽然他们花了一段时间才回复我,但我终于找到了解决方案。

我的问题是我在 console.developers.google.com 上手动创建了 OAuth 2.0 客户端 ID。您实际上应该做的是转到您的游戏服务,转到链接的应用程序并添加另一个链接的应用程序。您将选择与其他链接应用程序相同的应用程序,但对于 SHA1 密钥,您将输入您想要执行的任何密钥。

因此,当您想要添加另一个可以测试的 SHA1 密钥时,请勿手动创建 OAuth 2.0 客户端 ID。在您的游戏服务中转到已关联的应用并关联该应用!

【讨论】:

以上是关于使用上传密钥而不是 Google Play 应用签名密钥测试游戏服务的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 控制台:丢失了上传 APK 所需的上传密钥

使用上传密钥为您的 Flutter 应用签名(Google Play 的应用签名)

加固后,上传play store, 在 google play store 下载应用安装后,打开签名校验失败

无法使用 Google Play 应用签名上传证书更新发布 APK(使用原始密钥库)

使用 Google Play 上传密钥签署 APK

Google Play 应用签名证书和上传证书都在 Google Play 控制台中创建了相同的 SHA1 密钥