Fastlane在CI环境上传APK至Firebase App Distribution失败求助
问题解决:Flutter应用Fastlane上传Play Console和Firebase的错误处理
一、Google Play Console AAB上传错误:「Only releases with status draft may be created on draft app」
你对错误原因的判断正确——应用在Play Console处于草稿状态(未完成基础信息填写与审核)时,仅允许创建draft状态的发布,但即使是draft发布,也需要应用先完成基础信息提交审核。解决步骤:
- 登录Google Play Console进入应用后台
- 完成「商店信息」所有必填项:应用名称、短/长描述、图标、截图/视频、分类、内容分级等
- 提交应用进行基础内容审核(无需发布到生产,审核通过后应用将脱离draft状态)
- 审核通过后,重新运行Fastlane的
deploy_draft_to_internallane即可
二、Firebase App Distribution APK上传错误:「Invalid request」及403权限问题
针对这两个错误,按以下步骤排查解决:
1. 服务账号权限校验
- 确认
firebase_app_distribution_credentials.json是从Firebase控制台项目设置→服务账号→生成新私钥下载的文件 - 确保该服务账号拥有Firebase App Distribution的「发布者」角色(或更高权限如项目编辑者)
2. 路径与参数检查
- 核对
android_artifact_path的相对路径是否匹配CI环境的工作目录:CI中Fastfile执行路径可能与本地不同,建议改用绝对路径或调整为./build/app/outputs/apk/release/app-release.apk这类相对路径 - 确认
app参数的应用ID与Firebase控制台显示的完全一致(格式为1:xxxx:android:xxxx)
3. APK包合法性验证
- 确保
flutter build apk -v生成的是签名后的release包:未签名的APK无法上传至Firebase App Distribution - 在本地手动运行
deploy_draft_to_firebaselane,排查是否是CI环境的特殊限制(如网络防火墙、环境变量缺失)
4. 插件版本检查
- 确保CI中安装的
firebase_app_distribution插件为最新版本,旧版本可能存在API兼容性问题
附你的Fastfile配置(供参考):
default_platform(:android) platform :android do desc: "Google Play Console Internal Testing" lane :deploy_draft_to_internal do sh("flutter build appbundle -v") upload_to_play_store( track: 'internal', release_status: 'draft', skip_upload_changelogs: true, aab: "../build/app/outputs/bundle/release/app-release.aab" ) end lane :deploy_draft_to_firebase do sh("flutter build apk -v") firebase_app_distribution( app: "1:9..........:android:a.............", testers: "some@email.com", android_artifact_type: "APK", android_artifact_path: "../build/app/outputs/apk/release/app-release.apk", service_credentials_file: "firebase_app_distribution_credentials.json" ) end end
内容的提问来源于stack exchange,提问作者chriscross
相关产品推荐
相关产品推荐

