1

我最近切换到通过开发者控制台使用 Google App Signing 和 app bundle。因为我让 Google 管理密钥,这意味着我实际上拥有 2 个 SHA1:

  1. GSHA1 - Google 用于签署 APK 以进行分发的应用签名证书 SHA1
  2. USHA1 - 用于签署我在 Unity 中制作并上传到 Google 的包的上传证书 SHA1

这是有道理的,只要手机从谷歌获得安装就可以了。但是,我也有一个内部流程,可以构建包以独立于 Google 提供给我的团队。在开发过程中,这是我们在设备上获取应用程序的主要方式,我们不想改变这个过程。

问题是,如果我使用 USHA1 对这些内部构建进行签名,它们将无法通过 Google Play 游戏服务进行身份验证,因为控制台希望应用程序使用 GSHA1 进行签名。如果我将控制台客户端凭据中的配置更改为期待 USHA1,我已经确认他们可以突然进行身份验证,但这意味着任何从 Google 获取应用程序的人都将无法进行身份验证。

**** APP NOT CORRECTLY CONFIGURED TO USE GOOGLE PLAY GAME SERVICES
**** This is usually caused by one of these reasons:
**** (1) Your package name and certificate fingerprint do not match
****     the client ID you registered in Developer Console.
**** (2) Your App ID was incorrectly entered.
**** (3) Your game settings have not been published and you are 
****     trying to log in with an account that is not listed as
****     a test account.

我也尝试使用无符号(调试)别名进行构建,但这只会生成第三个同样错误的 SHA1,它也失败了。由于其安全性,我无法从 Google 获取私钥。那么我应该如何在不上传到 Google 的情况下签署我的应用程序并使用 GPG 身份验证进行测试?即使我没有自己的内部构建分发系统,我也不希望在本地测试所有功能之前将新包上传到 Google。我一定遗漏了一些明显的东西,有人可以帮我吗?

4

1 回答 1

1

确保您的每个 Android 客户端 ID(每个 SHA1 一个)都在 Play 控制台(不仅是云控制台)的“游戏服务”部分中注册为关联的应用程序。

Play 管理中心中每个链接的应用都对应一对(PackageName + Signature),因此如果有两个签名要链接,则应该有两个链接的应用。

于 2019-08-08T14:38:44.833 回答