[英]Flutter Google Sign and Phone Auth error after publishing the app com.google.android.gms.common.api.b 10
[英]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) 当您通过 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 :
如果有人在 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(我在发布应用程序之前创建的)的指纹。
寻找“正确”的 OAuth 2.0 客户端 ID:Google Play 控制台 -> 游戏服务 -> 选择您的应用 -> 链接的应用 -> 选择您的应用 -> 记下底部的“OAuth2 客户端 ID”。
查找“签名”证书:Google Play 控制台 -> 游戏服务 -> 选择您的应用 -> 游戏详细信息 -> API 控制台项目 -> 凭据 -> OAuth 2.0 客户端 ID ->“XXXXXX 的 Android 客户端(由Google Service)" --> 记下值 (xx:xx:xx:etc....) 评论:为了在我的其他 OAuth 2.0 客户端 ID 中重用这个值,我不得不用一些虚拟数字替换它. 否则,您将收到错误消息:“证书已在其他项目中使用”。
转到您现有的 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
。
只需转到 google play 控制台 > 喜欢的帐户并链接您的 firebase 项目。 现在它工作正常!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.