如何在Codemagic中添加服务账号密钥?Flutter部署Firebase Distribution遇阻
问题解决:Codemagic部署Flutter到Firebase Distribution及工作流配置问题
一、通过服务账号密钥完成Codemagic到Firebase Distribution的部署
完全可以用服务账号密钥完成部署,具体步骤如下:
- 获取Firebase服务账号密钥
- 打开Firebase控制台进入目标项目
- 点击右上角设置图标 → 项目设置 → 服务账号标签
- 点击生成新的私钥,下载JSON格式的密钥文件
- 在Codemagic中配置密钥
- 进入Codemagic项目的项目设置 → 环境变量
- 添加新变量,命名为
FIREBASE_SERVICE_ACCOUNT_KEY,把下载的JSON文件内容粘贴进去,勾选Secure选项
- 在codemagic.yaml中配置部署脚本
替换原Token相关脚本,用服务账号认证:
注意替换scripts: - name: 安装Firebase CLI script: | npm install -g firebase-tools - name: Firebase认证 script: | echo $FIREBASE_SERVICE_ACCOUNT_KEY > service_account_key.json firebase login:ci --ci --key service_account_key.json - name: 部署到Firebase Distribution script: | firebase appdistribution:distribute build/app/outputs/apk/release/app-release.apk \ --app <你的Firebase App ID> \ --groups <测试组名称><你的Firebase App ID>和<测试组名称>为实际值,iOS项目替换成IPA文件路径即可。
二、解决codemagic.yaml提示“工作流未配置”的问题
这个问题大多是yaml格式错误或工作流定义不完整导致的,按以下步骤排查:
- 校验yaml语法
用yamllint命令或在线yaml校验工具检查格式,确保缩进用2个空格(不能用Tab)、键值对冒号后加空格、列表项-后有空格。 - 确保工作流定义完整
codemagic.yaml必须包含至少一个完整的workflows块,示例:
注:如果用workflows: default-workflow: name: 默认工作流 environment: flutter: stable scripts: - flutter pub get - flutter build apk --release artifacts: - build/app/outputs/apk/release/*.apk publishing: firebase: service_account: $FIREBASE_SERVICE_ACCOUNT_KEY app_id: <你的Firebase App ID> groups: <测试组名称>publishing块的Firebase集成,无需单独写认证脚本,Codemagic会自动处理服务账号认证。 - 确认Codemagic关联正确配置
进入项目工作流页面,确认选择的是自定义工作流(codemagic.yaml),若刚上传yaml,点击重新加载配置按钮。 - 检查环境变量引用
确保yaml中用到的环境变量(如$FIREBASE_SERVICE_ACCOUNT_KEY)已在Codemagic项目环境变量中添加,且名称完全一致(区分大小写)。
内容的提问来源于stack exchange,提问作者Sarah Bensalem
相关产品推荐
相关产品推荐

