Flutter发布版出现FIS_AUTH_ERROR,调试版正常求解决方案
Flutter发布构建出现FIS_AUTH_ERROR(调试版本正常)
问题描述
发布构建版本执行以下代码时触发FIS_AUTH_ERROR错误,调试构建完全正常,该功能上周可正常运行:
var _deviceToken = await FirebaseMessaging.instance.getToken();
已尝试以下两种方案但未解决问题:
- 方案1核心:检查并确保Firebase项目的SHA-1/SHA-256指纹已正确添加到Firebase控制台的应用设置中(包含发布构建的签名指纹)
- 方案2核心:确认
google-services.json(Android)或GoogleService-Info.plist(iOS)是从Firebase控制台下载的最新版本,且已正确放置在项目对应目录
额外排查与修复方案
验证发布构建签名配置
Android端需确保build.gradle中的签名配置指向正确的发布密钥库文件,且密钥库生成的SHA指纹和Firebase控制台添加的完全一致。可通过以下命令重新生成发布指纹:keytool -list -v -keystore your-release-keystore.jks -alias your-aliasiOS端需确认发布证书的Team ID与Firebase应用配置匹配,重新下载配置文件替换项目中的旧文件。
升级Firebase依赖版本
尝试将firebase_messaging依赖升级到最新稳定版本,同时确保其他Firebase相关依赖版本兼容,避免版本冲突引发认证异常。检查Firebase项目权限与API状态
登录Firebase控制台,确认Cloud Messaging API已开启;在「项目设置」→「服务账号」中,检查当前使用的服务账号是否具备Cloud Messaging Admin等必要权限。清理构建缓存后重新构建
清理Flutter及原生项目的构建缓存,再重新生成发布版本:flutter clean cd android && ./gradlew clean && cd .. flutter build apk --release # 对应iOS可使用flutter build ios --release配置混淆规则(Android)
发布构建若开启了ProGuard/R8混淆,需在proguard-rules.pro中添加Firebase相关类的保留规则,避免核心代码被混淆:-keep class com.google.firebase.** { *; } -keep class com.google.android.gms.** { *; }
内容的提问来源于stack exchange,提问作者Alpit Panchal
相关产品推荐
相关产品推荐

