谷歌在多服务器环境下登录Android应用程序?

谷歌在多服务器环境下登录Android应用程序?,android,oauth,oauth-2.0,google-oauth,google-signin,Android,Oauth,Oauth 2.0,Google Oauth,Google Signin,我们有多个服务器环境(例如开发、登台、发布),每个环境都在Google开发者控制台中作为自己的项目,并且希望能够从我们的Android应用程序登录到其中任何一个环境,以便进行测试 我在其中一个环境中使用Google登录(按照教程),但当我尝试启用其他环境时,出现以下错误: 您指定的SHA-1已与其他Android OAuth2客户端的相同包名一起使用。 似乎我们不允许在多个项目中为同一个packagename/签名证书哈希启用Google登录。那么,如何为我们的每个服务器环境启用应用程序的Goo

我们有多个服务器环境(例如开发、登台、发布),每个环境都在Google开发者控制台中作为自己的项目,并且希望能够从我们的Android应用程序登录到其中任何一个环境,以便进行测试

我在其中一个环境中使用Google登录(按照教程),但当我尝试启用其他环境时,出现以下错误:

您指定的SHA-1已与其他Android OAuth2客户端的相同包名一起使用。


似乎我们不允许在多个项目中为同一个packagename/签名证书哈希启用Google登录。那么,如何为我们的每个服务器环境启用应用程序的Google登录?有办法解决这个问题吗?

您有几个选择来解决这个问题

您可以使用不同的证书为不同环境的应用程序签名,也可以为每个环境创建不同的项目

其他选项是为每个环境使用不同的包名,例如com.mycompany.myapp.dev com.mycompany.myapp.staging和com.mycompany.myapp(用于生产)


您只能有一个客户端id,其包名和证书哈希的组合相同。

如前所述,这似乎是不可能的;正如错误消息所说,每个签名证书哈希/packagename组合只能为一个后端项目启用Google登录。我最后做的是为不同的
产品风格创建多个
应用程序ID
(每个端点一个)。

在一个开发控制台项目中,您可以添加多个OAuth 2.0客户端,例如

  • web服务器的多个实例(如果不想共享客户端id和机密)
  • 多个Android客户端(每个Android客户端都由包名+签名证书SHA1散列唯一标识。这是全局性的。包名+签名证书对其他人来说不是秘密。你不会希望其他人伪造你的Android客户端并获得相同的OAuth令牌。因此谷歌不允许在另一个开发控制台项目中使用第二个条目)

  • 这意味着您在play store中有多个应用程序。我只有一个应用程序,我需要登录3个不同的Firebase项目,但我不能,因为谷歌只允许一个有指纹。我该如何解决这个问题?