使用Firebase App Distribution分发AAB时遇“Precondition check failed”错误
问题分析与解决方案
1. 先解决firebase.json的配置错误
错误日志第一行提示:
Object "" in "firebase.json" has unknown property: {"additionalProperty":"flutter"}
这说明你的firebase.json根节点存在Firebase CLI不识别的flutter字段。解决方法:
- 打开项目根目录的
firebase.json文件 - 删除根节点下的
"flutter"配置项(Flutter相关配置需通过flutterfire configure等工具生成,不应直接写在firebase.json根节点) - 保存文件后重新执行分发命令
2. 修复AAB分发的400预检查失败错误
核心错误是failed to determine AAB info. HTTP Error: 400, Precondition check failed.,结合你的Flutter flavor场景,主要排查以下几点:
(1)修正--app参数的值
你当前命令中--app <PROJECT_ID>是错误的:
firebase appdistribution:distribute的--app参数需要传入Firebase App ID(格式类似1:1234567890:android:abcdef1234567890),而非Firebase项目ID- 可在Firebase控制台对应App的详情页找到该ID,替换命令中的
<PROJECT_ID>
(2)确保Flavor对应的包名已在Firebase注册
使用Flutter flavor时,不同环境可能有不同包名(比如staging环境包名可能是com.yourapp.staging):
- 检查staging flavor的
build.gradle(或build.gradle.kts)中配置的applicationId - 登录Firebase控制台,确认是否已注册该包名的Android App;未注册则需新增对应App并完成配置
(3)验证AAB的签名配置
App Distribution要求上传的AAB签名信息与Firebase控制台配置一致:
- 检查staging flavor的签名配置,确认使用的签名密钥正确
- 登录Firebase控制台,进入对应App的「设置」→「应用签名」,确保已添加该签名密钥的SHA-1和SHA-256指纹(若关联Google Play应用签名,需同步对应信息)
(4)确认用户权限
确保当前登录Firebase CLI的账号拥有该项目的App Distribution编辑或管理员权限:
- 执行
firebase login确认登录账号正确 - 在Firebase控制台的「项目设置」→「用户和权限」中检查账号权限
修正后的示例命令
firebase appdistribution:distribute build/app/outputs/bundle/stagingRelease/app-staging-release.aab --app 1:1234567890:android:abcdef1234567890 --groups internal --debug
内容的提问来源于stack exchange,提问作者Ortes
相关产品推荐
相关产品推荐

