Flutter应用release模式下google sign in无法使用相关问题咨询
问题1:SHA key是否区分debug模式与release模式?
二者是完全区分的,对应不同的签名证书:
- debug模式默认使用Android SDK自动生成的调试签名文件,所有本地开发环境的debug模式默认SHA值是通用的测试类签名
- release模式使用你自行生成的正式签名证书(jks/keystore格式),每个独立的正式签名证书对应的SHA1、SHA256值都是唯一的
Firebase Google登录的签名校验逻辑会严格匹配请求来源的SHA值,你仅配置debug模式的SHA值时,release模式的签名无法通过校验,自然会出现登录失败的问题。
修复方案:导出你正式签名证书对应的SHA1、SHA256值,添加到Firebase控制台项目设置的SHA证书指纹列表中,重新下载google-services.json替换到Android项目的app目录下,重新构建release包即可。
问题2:如何查看、监控release模式下的应用运行活动?
分本地调试和线上发布两种场景处理:
本地release包调试日志查看
- Android端:将测试机开启USB调试连接电脑,执行adb命令过滤应用包名即可查看全量日志,示例命令(替换为你的应用包名):
adb logcat -s 你的应用包名
你也可以临时将release构建的debuggable属性设为true,直接在Android Studio的Logcat面板筛选查看日志 - iOS端:用Xcode连接测试设备,直接运行release模式的构建产物,即可在Xcode控制台看到完整运行日志
线上release包运行监控
直接使用Firebase自带的原生能力即可实现全链路监控:
- 集成Crashlytics:自动捕获release模式下的所有崩溃、非崩溃异常,包括Google登录过程中的签名校验错误、权限错误等异常堆栈,可直接在Firebase控制台查看完整报错信息
- 自定义事件埋点:在Google登录的初始化、唤起授权、授权回调、结果处理等核心节点增加自定义埋点,即可监控每个节点的触发成功率,快速定位问题出现的环节
内容的提问来源于stack exchange,提问作者Imesh Madushanka
相关产品推荐
相关产品推荐

