Flutter 工程实践指南:持续集成与持续部署流程搭建
·
Flutter 工程实践指南:持续集成与持续部署(CI/CD)流程搭建
构建高效的 CI/CD 流程是保障 Flutter 应用质量与迭代速度的核心。以下是完整实践方案:
一、核心流程设计
-
持续集成(CI)阶段
- 代码提交触发:监听 Git 分支(如
main/dev) - 环境准备:
- 安装 Flutter SDK(指定版本)
- 配置 Java/Kotlin(Android)或 Xcode(iOS)
- 关键任务:
- 依赖安装:
flutter pub get - 代码静态分析:
flutter analyze - 单元测试:
flutter test - 构建验证:
flutter build apk --debug或flutter build ios --debug
- 依赖安装:
- 代码提交触发:监听 Git 分支(如
-
持续部署(CD)阶段
- 测试分发:
- 生成测试包上传至 Firebase App Distribution 或 TestFlight
- 生产发布:
- 自动签名打包(Android:
.aab,iOS:.ipa) - 发布到 Google Play/App Store Connect
- 自动签名打包(Android:
- 监控反馈:
- 集成 Crashlytics 监控崩溃率
- 通过 Slack/Email 通知构建状态
- 测试分发:
二、平台配置示例(以 GitHub Actions 为例)
name: Flutter CI/CD
on:
push:
branches: [main]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.19.5' # 指定版本
- name: Install dependencies
run: flutter pub get
- name: Run tests
run: flutter test
- name: Build Android APK
run: flutter build apk --release
if: github.ref == 'refs/heads/main'
- name: Upload to Firebase
uses: wzieba/Firebase-Distribution-Github-Action@v1
with:
appId: ${{ secrets.FIREBASE_APP_ID }}
token: ${{ secrets.FIREBASE_TOKEN }}
groups: testers
file: build/app/outputs/apk/release/app-release.apk
三、关键优化实践
-
构建加速技巧
- 缓存依赖:缓存
~/.pub-cache和Pods目录 - 并行任务:Android/iOS 构建分拆至独立 Job
- 增量测试:仅运行受代码改动影响的测试用例
- 缓存依赖:缓存
-
安全合规处理
- 密钥管理:使用 GitHub Secrets 或 Vault 存储签名证书
- 代码签名:
- Android:通过
keystore.properties注入 - iOS:自动管理 Provisioning Profiles
- Android:通过
-
灰度发布策略
graph LR A[构建成功] --> B{发布渠道} B -->|内部测试| C[Firebase] B -->|公测| D[TestFlight] B -->|生产| E[AppStore/PlayStore]
四、故障排查清单
| 问题类型 | 解决方案 |
|---|---|
| 依赖安装失败 | 清理缓存:flutter pub cache repair |
| iOS 证书错误 | 检查 Bundle ID 与 Profiles 匹配性 |
| Android 构建超时 | 增加 Gradle 堆内存:org.gradle.jvmargs=-Xmx4096m |
| 测试覆盖率不足 | 集成 lcov:flutter test --coverage |
最佳实践总结:
- 采用 分支策略(如 Git Flow)隔离开发与生产环境
- 所有流程 脚本化,拒绝手动操作
- 关键指标监控:构建时长、测试通过率、崩溃率
- 定期清理过期产物(如
DerivedData)
通过以上流程,可实现 每日多次发布 的敏捷迭代,显著提升团队效能。
更多推荐
所有评论(0)