我经历了this,就过程而言,我做到了。
但是当我从Play商店安装应用程序时,我无法使用google sign in
按钮登录。
我已经使用Firebase进行谷歌登录。当我点击登录按钮时,选择该帐户的选项即将到来,但它没有登录或执行任何操作。
那么我哪里可能出错?
答案 0 :(得分:142)
当您将apk上传到Play商店时,Play商店会创建一个名为" 应用程序签名证书"的新SHA1密钥。您获得SHA1并保存在控制台或firebase帐户中(根据需要)。
新的SHA1将在您的播放控制台上的发布的管理 - > App Sigining 中找到。
[]
答案 1 :(得分:34)
更新:Google更改了上传APK的行为,请查看以下答案!
发布APK和调试APK为谷歌服务提供不同的SHA1和不同的API密钥。必须在Firebase控制台中添加它们 - >项目设置。然后从此处下载google-services.json
,将其添加到项目中,并使用选项"使用发布密钥库重新编译;构建已签名的APK"。这应该工作
答案 2 :(得分:6)
为我的应用程序启用Google Play应用程序签名时创建了问题。 Google Play应用签名将SHA-1证书指纹(从我的密钥库中的指纹)更改为自己的SHA-1证书指纹。
修复:
您将看到“应用程序签名证书”和“上传证书”
所有固定!
答案 3 :(得分:3)
使用Firebase时,应用程序生命周期需要三种SHA1类型
在此处发布您的应用程序后,您需要在Firebase中添加签名SHA1。我要附加两个屏幕截图,请看一看。必须使用红色标记的证书
答案 4 :(得分:3)
1)当您通过Google Play控制台创建/发布应用时,有一个启用Google Play应用签名的选项。如果启用,它将显示
为此应用启用了Google Play应用签名。
然后您的上载证书详细信息将更改,您需要在相应位置重写SHA-1等证书详细信息。
2)您提供了调试密钥存储区/ SHA-1证书详细信息而不是RELEASE 证书详细信息
3)生成证书时出错。
版本管理->应用签名
然后您会看到两种类型的证书
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)
答案 6 :(得分:2)
在新版本的谷歌控制台中:
设置 > 应用完整性
答案 7 :(得分:1)
答案 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)的指纹。
查找“正确的” OAuth 2.0客户端ID:Google Play控制台->游戏服务->选择您的应用->链接的应用->选择您的应用->注意“ OAuth2客户端ID” ”。
查找“签名”证书:Google Play控制台->游戏服务->选择您的应用-> API控制台项目->凭据-> OAuth 2.0客户端ID->“ XXXXXX的Android客户端(自动由Google服务创建)”->注意该值(xx:xx:xx:etc ....)注释:为了在我的其他OAuth 2.0客户端ID中重用此值,我必须将其替换为一些虚拟号码。否则,您将得到错误:“证书已在其他项目中使用”。
转到您现有的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
。
答案 11 :(得分:-1)
只需转到Google 播放控制台>喜欢的帐户并链接您的Firebase项目。现在工作正常!