最近项目做完上架到 Google Play,遇到一个坑。
本地调试和打包出来的Apk都可以正常使用谷歌登录,但当我把App上架到Google Play后,我遇到了这个问题:
[google_sign_in]点击谷歌登录,可以调起来页面,但是点击账号登录,触发异常
# PlatformException(sign_in_failed,com.google.android.gms.common.api.ApiException:10:,null,null)
造成的原因: 现在上传 App Bundle 到 Google Play,默认使用Play应用程序签名,这个选项我其实都没找到,可能是强制要求的,但这会造成最后的包的签名和你本地调试的包签名不一致,造成谷歌登录失效
解决方案:
1,找到 Google Play Console - Setup - App integrity
2,打开 Firebase 你的应用配置界面
复制上一步的 SHA-1 certificate fingerprint
复制上一步的 SHA-256 certificate fingerprint
填入对应App的 SHA 证书指纹中
这里可以填入 Google Play 和本地调试的签名,这样就都可以使用谷歌登录
3,再次测试谷歌登录
不用重新打包,修改完成配置,应该就能成功登录了,如果还是不行,可以去 github.com/flutter/flu… 寻找解决方案
补充:
1,有什么方法可以查看 Google play 上的包使用的签名呢?
1,下载 APKExport-APK导出
2,将对应App导出到手机,在发送到电脑端
3,获取App的签名
# APK file
keytool -printcert -jarfile app.apk
# AAB file
keytool -printcert -jarfile app.aab
4,经过对比与第一步找到的签名一致,并且发布者为Google Inc,说明我们的App使用了 Play应用程序签名
2,不使用Play应用程序签名