Google 登录 Android - 发布与调试

Google Sign in for Android - Release vs Debug

所以目前,我正在尝试实施 google 登录。我已按照 developer.android.com 上的说明进行操作。我遇到了一个奇怪的问题,我看到几个人在 SO talk关于这个,但它永远不会到达任何地方所以我在这里发布这个......

我可以在生成已签名的 apk 后使用 google 登录;如果我不遵循该方法,我将无法使用 google 登录(即,如果我插入 phone 并在 android studio 上点击 运行,google登录告诉我我的请求结果不成功)

我的问题是 1) 这里到底发生了什么?和 2) 如何使用 google 登录而不需要每次都生成签名的 apk ..

更新

我相信这是因为 SHA-1 散列函数在调试密钥库和发布时 运行 ...

签名后,您的 apk 将使用您签名的 SHA1 来使用 google 服务..比如 gmail 登录..

所以你的调试 SHA1 将不起作用..在这种情况下。

回答您的第一个问题..我认为您的 OAuth 2.0 客户端 ID SHA1 用于发布版本。所以在调试模式下它不工作

你的第二个问题是的,你可以使用 google 登录而无需每次生成签名的 apk..

为此首先找到你的调试 SHA1

  1. 单击视图右侧的 Gradle 选项卡。
  2. 转到 ROOT 文件夹 -> 任务 -> android -> signingReport
  3. 双击,这将使用 signingReport 和 post 在底部视图中构建 SHA1。

现在去

  1. https://console.developers.google.com

  2. select 左侧的凭据选项卡

  3. select 底部的 OAuth 2.0 客户端 ID 和 select Android 客户端 1

  1. 现在将版本 SHA1 更改为调试 SHA1 并保存
  2. 现在您的 google 登录也可以在调试模式下工作。

N.B:在构建 apk 期间将您的构建变体从发布更改为调试

并且在发布期间,您必须在 OAuth2.0

中替换回您的发布 SHA1