繁体   English   中英

在 Play 商店中发布后,Google 登录无法正常工作

[英]Google sign in not working after publishing in play store

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

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

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

那么我哪里可能出错了?

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

新的 SHA1 将在您的游戏控制台上的已发布管理->应用签名中找到。

[在此处输入图片说明 ]

更新:谷歌改变了上传 APK 的行为,检查下面的答案!

发布 APK 和调试 APK 具有不同的 SHA1 和不同的 google 服务 API 密钥。 它们都必须在 Firebase 控制台 -> 项目设置中添加。 然后从这里下载google-services.json ,将其添加到项目中,并使用“构建签名的 APK”选项使用发布密钥库重新编译。 那应该工作

该问题是在为我的应用启用 Google Play 应用签名时产生的。 Google Play App Signing 将 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 应用签名证书。 保存。

全部固定!

使用 firebase 时,应用生命周期需要三种类型的 SHA1

  • -调试SHA1
  • -释放SHA1
  • -签署SHA1 (从Play商店获得)

在此处发布您的应用程序后,您需要将签名 SHA1 添加到 firebase,我附上了两个屏幕截图,请查看。 必须需要红色标记的证书,因此请从 Playstore 复制并粘贴到 firbase 在此处输入图片说明

在此处输入图片说明

在firebase粘贴这里

问题发生是因为

1) 当您通过 google play 控制台创建/发布应用程序时,有一个选项可以启用 Google Play 应用程序签名。 如果你启用它会显示

此应用已启用 Google Play 应用签名。

在此处输入图片说明

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

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

3) 生成证书时出错。

解决方案

1)转到谷歌播放控制台

版本管理 -> 应用签名

然后你可以看到两种类型的证书

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

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

您需要使用之前使用过的 google play 提供的新详细信息更改上传的证书详细信息。 例如集成 google 登录(更改OAuth 客户端的SHA-1)、facebook 登录(更改密钥哈希(使用 SHA-1 生成密钥哈希,使用此链接或复制 facebook 登录错误屏幕提供的密钥哈希)、 firebase等。

2) 提供发布SHA-1/keyHash

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

使用命令提示符:

谷歌/火力基地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 密钥库密码。

要添加现有响应,一旦您拥有新创建的 SHA1:

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

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

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

在此处输入图片说明

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

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

设置 > 应用完整性

如果您在发布应用时启用了“Google Play App Signing”,那么您现在可能要处理两个指纹:

来自本地密钥库的那个(keytool -exportcert -keystore path-to-production-keystore -list -v),称为“上传证书”。

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

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

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

  • 当您启用 Google 签名时,由 Google 创建的新签名。

您可以从以下位置验证这一事实:Google Play Console -> Games Services -> Select your App -> Games Details -> API Console project -> Credentials -> OAuth 2.0 client IDs

解决方案

为了让 Google 登录(以及所有相关的游戏服务功能)正常工作,我必须更正我预先存在的 OAuth2 客户端 ID(我在发布应用程序之前创建的)的指纹。

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

  2. 查找“签名”证书:Google Play 控制台 -> 游戏服务 -> 选择您的应用 -> 游戏详细信息 -> API 控制台项目 -> 凭据 -> OAuth 2.0 客户端 ID ->“XXXXXX 的 Android 客户端(由Google Service)" --> 记下值 (xx:xx:xx:etc....) 评论:为了在我的其他 OAuth 2.0 客户端 ID 中重用这个值,我不得不用一些虚拟数字替换它. 否则,您将收到错误消息:“证书已在其他项目中使用”。

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

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

最新的 Google Play控制台 2021 中:

快速指南:

Application Play console > Setup > App Integrity

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

详细指南:

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

第 2 步:在左侧栏的Release下,选择Setup ,然后选择App Integrity

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

在此处输入图片说明

更新 Firebase 项目设置中的 SHA-1 密钥

在此处输入图像描述

还要检查您的谷歌云项目 api 密钥设置,如果您有密钥限制,还可以添加 SHA-1 密钥凭据。

在此处输入图像描述

只需转到 google play 控制台 > 喜欢的帐户并链接您的 firebase 项目 现在它工作正常!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM