Flutter集成Firebase OTP debug正常release APK报错排查解决
问题现象
在Flutter项目中集成Firebase OTP验证码功能时,debug签名的APK可以正常接收验证码短信,但执行flutter run --release命令运行release签名APK时,返回如下报错:
This app is not authorized to use Firebase Authentication. Please verify that the correct package name and SHA-1 are configured in the Firebase Console. [ A safety_net_token was passed, but no matching SHA-256 was registered in the Firebase console. Please make sure that this application’s packageName/SHA256 pair is registered in the Firebase Console. ]
测试场景说明:应用是直接安装到真机运行,并非从Google Play渠道下载安装。
已尝试的排查操作
- 已在Firebase Console配置Debug签名密钥的SHA信息
- 已在Firebase Console配置Release签名密钥的SHA信息
- 已在Firebase Console配置Google Play签名证书与上传密钥证书
- 已将本地项目中的
google-services.json文件更新为Firebase后台下载的最新版本 - 每次调整配置后运行前,都执行
flutter clean、flutter pub get命令确保配置生效 - 已尝试同类问题公开的所有常规解决方案,包括在Firebase后台补充联系邮箱、配置Google Play相关密钥等,均未解决问题
问题根因与解决方法
该问题已修复,故障根源为AndroidManifest文件中的包名配置错误。
报错信息本身已经明确给出排查方向:需要保证应用实际的包名/SHA256配对,和Firebase Console中注册的应用信息完全一致。这类鉴权不通过问题绝大多数场景下是SHA-1或SHA-256密钥配置错误导致,但本次问题实际是包名配置不匹配引发,核对修正AndroidManifest中的包名,确保其和Firebase Console中注册的应用包名完全一致后,问题即可解决。
内容的提问来源于stack exchange,提问作者Majd Harb

