谷歌在Play商店发布后登录不工作

时间:2016-09-04 15:11:10

标签: android firebase firebase-authentication google-signin

我经历了this,就过程而言,我做到了。

但是当我从Play商店安装应用程序时,我无法使用google sign in按钮登录。

我已经使用Firebase进行谷歌登录。当我点击登录按钮时,选择该帐户的选项即将到来,但它没有登录或执行任何操作。

那么我哪里可能出错?

12 个答案:

答案 0 :(得分:142)

当您将apk上传到Play商店时,Play商店会创建一个名为" 应用程序签名证书"的新SHA1密钥。您获得SHA1并保存在控制台或firebase帐户中(根据需要)。

新的SHA1将在您的播放控制台上的发布的管理 - > App Sigining 中找到。

[enter image description here]

答案 1 :(得分:34)

更新:Google更改了上传APK的行为,请查看以下答案!

发布APK和调试APK为谷歌服务提供不同的SHA1和不同的API密钥。必须在Firebase控制台中添加它们 - >项目设置。然后从此处下载google-services.json,将其添加到项目中,并使用选项"使用发布密钥库重新编译;构建已签名的APK"。这应该工作

答案 2 :(得分:6)

为我的应用程序启用Google Play应用程序签名时创建了问题。 Google Play应用签名将SHA-1证书指纹(从我的密钥库中的指纹)更改为自己的SHA-1证书指纹。

修复:

  1. 转到 https://play.google.com/apps/publish/
  2. 单击您的应用程序>>版本管理>>应用程序签名。
  

您将看到“应用程序签名证书”和“上传证书”

  1. 复制“应用签名证书”中的SHA-1。 (第一名)
  2. 转到 https://console.firebase.google.com/
  3. 单击您的应用程序>>设置[项目概述右侧的齿轮箱图标](在屏幕顶部)>>项目设置>>常规[制表符] >>添加指纹
  4. 粘贴 SHA-1应用签名证书。保存。

所有固定!

答案 3 :(得分:3)

使用Firebase时,应用程序生命周期需要三种SHA1类型

  • -调试SHA1
  • -发布SHA1
  • -签署SHA1 (从Play商店获取)

在此处发布您的应用程序后,您需要在Firebase中添加签名SHA1。我要附加两个屏幕截图,请看一看。必须使用红色标记的证书enter image description here

enter image description here

答案 4 :(得分:3)

发生此问题是因为

1)当您通过Google Play控制台创建/发布应用时,有一个启用Google Play应用签名的选项。如果启用,它将显示

  

为此应用启用了Google Play应用签名。

enter image description here

然后您的上载证书详细信息将更改,您需要在相应位置重写SHA-1等证书详细信息。

2)您提供了调试密钥存储区/ SHA-1证书详细信息而不是RELEASE 证书详细信息

3)生成证书时出错。

解决方案

1)转到google play console

版本管理->应用签名

然后您会看到两种类型的证书

1-上传证书(生成签名的apk时提供您的应用程序证书)

2-应用签名证书(因为您启用了Google Play应用签名,所以他们为您发布的APK提供了新的证书详细信息)

  

您需要使用新的详细信息更改上传的证书详细信息   由Google Play提供,您曾经使用过的地方。如   集成Google登录(更改OAuth client的SHA-1),   facebook登录(更改key Hash(使用SHA-1生成密钥哈希)   使用此link或复制facebook登录名提供的密钥哈希   错误屏幕),firebase

2)提供版本SHA-1 / keyHash

create /使用已签名apk的密钥库详细信息。

使用命令提示符:

google / firebase SHA-1:

keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v

facebook发布密钥哈希:

keytool -exportcert -alias <user alias name> -keystore < keystore path> | <openssl-path> sha1 -binary | <openssl-path> base64   

如果要求输入密码,请输入已签名的apk密钥库密码。

答案 5 :(得分:3)

如果有人无法解决此问题,则只需打开设置 > 应用完整性 在控制台中,然后复制 SHA1 并粘贴到您的 Firebase 控制台中。

enter image description here

答案 6 :(得分:2)

在新版本的谷歌控制台中:

设置 > 应用完整性

答案 7 :(得分:1)

要添加现有响应,请在创建新创建的SHA1之后:

转到https://console.firebase.google.com

  1. 选择项目
  2. 项目概述
  3. 项目设置
  4. 添加指纹-在证书指纹中输入SHA1
  5. 保存

答案 8 :(得分:1)

如果在发布应用程序时启用了“ Google Play应用程序签名”,则您现在可能正在处理两个指纹:

一个来自本地密钥库(密钥工具-exportcert -keystore路径到生产密钥库-list -v)的密钥库,称为“上载证书”。

启用签名后由Google生成的新证书(“签名证书”)。

与这种情况的冲突是,您可能会得到两个OAuth 2.0客户端ID:

  • 您在发布应用之前(以及启用Google签名之前)创建的一个,它确实是“正确”的。

  • 启用Google签名后由Google创建的新密码。

您可以从以下位置验证此事实:Google Play控制台->游戏服务->选择您的应用-> API控制台项目->凭据-> OAuth 2.0客户端ID

解决方案

为了使Google登录(以及所有相关的Game Services功能)正常工作,我必须更正我现有的OAuth2客户端ID(在发布应用之前创建的ID)的指纹。

  1. 查找“正确的” OAuth 2.0客户端ID:Google Play控制台->游戏服务->选择您的应用->链接的应用->选择您的应用->注意“ OAuth2客户端ID” ”。

  2. 查找“签名”证书:Google Play控制台->游戏服务->选择您的应用-> API控制台项目->凭据-> OAuth 2.0客户端ID->“ XXXXXX的Android客户端(自动由Google服务创建)”->注意该值(xx:xx:xx:etc ....)注释:为了在我的其他OAuth 2.0客户端ID中重用此值,我必须将其替换为一些虚拟号码。否则,您将得到错误:“证书已在其他项目中使用”。

  3. 转到您现有的OAuth2客户端ID:Google Play控制台->游戏服务->选择您的应用-> API控制台项目->凭据-> OAuth 2.0客户端ID->选择“ OAuth 2.0客户端步骤1中的ID来更新证书值。

这解决了我的问题。多人游戏在我的应用程序(Match4App)中运行完美。

答案 9 :(得分:1)

如果有人在2020年8月之后遇到此问题。可以在您的游戏机上的“设置”->“应用签名”中找到新的SHA1。 回答的其他所有内容都与@PrinkalKumar相同。

答案 10 :(得分:1)

最新的 Google Play 控制台 2021 中:

快速指南:

Application Play console > Setup > App Integrity


在应用程序的搜索框中搜索 App Integrity

详细指南:

第 1 步:转到 https://play.google.com/console/u/3/developers 并打开应用程序的仪表板

第 2 步:在左侧边栏中 Release 下,选择 Setup,然后选择 { {1}}

可选:您也可以在搜索中简单地搜索 App Integrity

enter image description here

答案 11 :(得分:-1)

只需转到Google 播放控制台>喜欢的帐户并链接您的Firebase项目。现在工作正常!