Google登录多个服务器环境中的Android应用?

时间:2016-03-04 21:36:00

标签: android oauth oauth-2.0 google-oauth google-signin

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

我让Google登录其中一个工作环境(遵循教程here)但是当我尝试启用其他here时,我收到以下错误:

The SHA-1 you specified is already used with the same package name for a different Android OAuth2 client.

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

3 个答案:

答案 0 :(得分:2)

似乎不可能如上所述;如错误消息所示,您只能为每个签名证书哈希/包名称组合的一个后端项目启用Google登录。我最终做的是为不同的applicationIds创建多个productFlavorshttp://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename)(每个端点一个)。

答案 1 :(得分:2)

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

  1. 您的网络服务器的多个实例(如果您不想共享客户端ID和密码)
  2. 多个Android客户端(每个Android客户端由包名称+签名证书SHA1哈希唯一标识。这是全球性的。包名+签名证书对其他人不是秘密。你不希望别人假的您的Android客户端并获得相同的OAuth令牌。因此Google不允许在另一个开发控制台项目中获得第二个条目)

答案 2 :(得分:0)

您有几个选项可以解决此问题。

您可以使用其他证书为不同环境的应用签名,并为每个环境创建不同的项目。

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

您只能拥有一个客户端ID,并且包名称和证书哈希值相同。