如何通过Codemagic Flutter工作流在Google Consul和App Store展示更新日志?
解决方案:在Codemagic中自动同步更新日志到Google Play和App Store
准备工作
- 项目根目录维护CHANGELOG.md,按版本号分段(比如以
## vX.X.X开头区分不同版本),确保更新内容清晰。 - 在Codemagic项目设置中完成Google Play(服务账号密钥)和App Store Connect(API密钥/证书)的权限配置。
Google Play 同步更新日志
Codemagic支持通过变量或yaml配置直接上传对应版本的更新日志,编辑器模式找不到的话,优先用yaml配置:
- 提取对应版本的日志内容:
在工作流脚本中加入以下命令,从CHANGELOG和pubspec.yaml中自动获取当前版本的更新内容:# 获取pubspec.yaml中的版本号 VERSION=$(grep 'version:' pubspec.yaml | sed 's/version: //') # 提取该版本的更新日志(假设CHANGELOG中每个版本以## vX.X.X开头) CHANGELOG=$(sed -n "/## v$VERSION/,/## v/p" CHANGELOG.md | head -n -1) - 配置发布步骤:
在codemagic.yaml的Google Play发布节点中指定更新日志:
如果想用编辑器模式,在Android发布步骤的「Release notes」选择「Custom」,直接填入publishing: google_play: credentials: $GOOGLE_PLAY_CREDENTIALS track: production release_notes: en-US: $CHANGELOG # 可添加其他语言版本,比如zh-CN: $CHANGELOG_ZH$CHANGELOG即可。
App Store Connect 同步更新日志
App Store的「What's New」内容同样可以自动同步,步骤如下:
- 用和Google Play相同的shell命令提取对应版本的更新日志。
- 配置发布步骤:
在codemagic.yaml的App Store发布节点中指定内容:
编辑器模式下,在iOS发布步骤的「What's new」选择「Custom」,填入publishing: app_store_connect: api_key: $APP_STORE_CONNECT_API_KEY key_id: $APP_STORE_CONNECT_KEY_ID issuer_id: $APP_STORE_CONNECT_ISSUER_ID submit_to_testflight: true whats_new: en-US: $CHANGELOG # 支持多语言配置$CHANGELOG即可。
注意事项
- 确保CHANGELOG的格式固定,否则sed命令无法准确提取内容,可根据自己的日志格式调整匹配规则。
- 所有敏感变量(如各类密钥)都要在Codemagic项目的「Environment variables」中配置,避免硬编码。
- 多语言日志可维护对应语言的分段内容,比如在CHANGELOG中加入
### 中文分区,再用sed提取对应部分。
内容的提问来源于stack exchange,提问作者Mee
相关产品推荐
相关产品推荐

