Google 在 Play 商店发布后无法登录

Google sign in not working after publishing in play store

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

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

我已经使用 Firebase 进行 google 登录。当我点击登录按钮时,会出现选择帐户的选项,但它没有登录或执行任何操作。

那么我哪里可能出错了?

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

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

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

新的 SHA1 将在您的游戏机上的 Released Management->App Sigining 处找到。

[]

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

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

  1. Select 项目
  2. 项目概览
  3. 项目设置
  4. ADD FINGERPRINT - 输入 SHA1 到证书指纹
  5. 保存

问题是在为我的应用程序启用 Google Play App Signing 时产生的。 Google Play App Signing 将 SHA-1 证书指纹(来自我的密钥库中的)更改为他们自己的 SHA-1 证书指纹。

修正:

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

You will see "App signing certificate" and "Upload certificate"

  1. 从 "App Signing Certificate." 复制 SHA-1(前一个)
  2. 转到 https://console.firebase.google.com/
  3. 单击 您的应用程序 >> 设置 [项目概览右侧的齿轮箱图标](屏幕顶部)>> 项目设置 >> 常规 [选项卡] >> 添加指纹
  4. 粘贴 SHA-1 应用签名证书。保存。

全部修复!

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

  • -调试 SHA1
  • -发布SHA1
  • -signing SHA1(从游戏商店获取)

在此处发布您的应用程序后,您需要将签名 SHA1 添加到 firebase 我附上了两个屏幕截图,请看一下。红色标记的证书是必须的,所以从 playstore 复制它并粘贴到 firbase

在此处粘贴 firebase

出现问题是因为

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

Google Play App Signing is enabled for this app.

然后您的上传证书详细信息将发生变化,您需要在相应位置重写 SHA-1 等证书详细信息。

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

3) 生成证书时出错。

解决方案

1) 转到 google play console

版本管理 -> 应用签名

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

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

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

you need to change uploaded certificate details with new details provided by google play where ever you used it before. such as Integrating google sign in (change SHA-1 of OAuth client), facebook login (change key Hash (generate key hash using SHA-1 use this link or copy the key hash provided by facebook login error screen), firebase etc.

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 密钥库密码。

如果您在发布应用时启用了 "Google Play App Signing",您现在可能会处理两个指纹:

来自本地密钥库的那个 (keytool -exportcert -keystore path-to-production-keystore -list -v),称为 "upload cert"。

启用签名时 Google 生成的新签名("signing certificate")。

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

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

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

您可以从以下位置验证这一事实:Google Play 控制台 -> 游戏服务 -> Select 您的应用程序 -> 游戏详细信息 -> API 控制台项目 -> 凭据 -> OAuth 2.0 客户端 ID

解决方案

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

  1. 查找 "right" OAuth 2.0 客户端 ID:Google Play 控制台 -> 游戏服务 -> Select 你的应用 -> 链接的应用 --> Select 您的应用程序 --> 记下底部的 "OAuth2 Client ID"。

  2. 查找 "Signing" 证书:Google Play 控制台 -> 游戏服务 -> Select 你的应用 -> 游戏详情 -> API Console project -> Credentials -> OAuth 2.0 client IDs --> "Android client for XXXXXX (auto created by Google Service)" --> 记下值 (xx:xx:xx:etc....) Comment: 为了在我的另一个 OAuth 2.0 客户端 ID,我不得不用一些虚拟号码替换它。否则,你会得到错误:"Certificate already used in some other project".

  3. 转到您预先存在的 OAuth2 客户端 ID:Google Play 控制台 -> 游戏服务 -> Select 您的应用 -> 游戏详情 -> API Console project -> Credentials -> OAuth 2.0 client IDs --> Select "OAuth 2.0 client ID" 来自第 1 步。使用来自第 2 步的证书值更新证书值。

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

只需转到 google 播放控制台 > 喜欢的帐户和 link 您的 firebase 项目 。现在可以正常使用了!

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

在新版本的 google 控制台中:

设置 > 应用完整性

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

最新的Google游戏控制台2021中:

快速指南:

Application Play console > Setup > App Integrity


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

详细指南:

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

第 2 步: 在左侧边栏下方 Release,select Setup,然后App Integrity.

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