Flutter 上架 Google Play,谷歌登录无法使用,报错PlatformException(sign_in_failed,com.google.an

2,716 阅读1分钟

最近项目做完上架到 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

image.png

2,打开 Firebase 你的应用配置界面

image.png

复制上一步的 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应用程序签名

image.png

2,不使用Play应用程序签名

image.png image.png image.png