如何在Flutter项目中配置持续集成和自动化打包发布?

如何在Flutter项目中配置持续集成和自动化打包发布?想了解从代码提交到最终发布到应用商店的完整流程,包括需要哪些工具(如Jenkins、Fastlane等)以及具体的配置步骤。目前遇到的问题是手动打包效率太低,希望能实现自动化部署到Android和iOS平台,最好能分享一些优化构建速度的技巧和常见问题的解决方案。

3 回复

作为屌丝程序员,分享一个简单的 Flutter 持续集成(CI) 和持续部署(CD) 自动化打包发布流程:

  1. Git 代码管理:将项目托管到 GitHub/GitLab,每次提交代码触发 CI 流程。
  2. Jenkins/Bitrise 配置
    • Jenkins:安装 Flutter 插件,在服务器上配置环境变量 PATH 包含 flutter/bin。
    • Bitrise:绑定 Git 仓库,添加 Flutter 工具步骤。
  3. 自动化打包脚本
    flutter clean
    flutter build apk --release
    
    生成的 APK 存放在 build/app/outputs/flutter-apk/
  4. 发布到测试平台
    • 内部测试:上传到蒲公英、FIR.im
    • 外部测试:使用 TestFlight(iOS)或分发网站(Android)。
  5. 定时任务/触发机制
    • Jenkins:设置定时构建或监听 Git Hook。
    • Bitrise:通过 Webhook 触发构建。
  6. 日志监控与通知:配置邮件或企业微信通知失败任务。

这样可以省去手动打包的时间,提高工作效率。记得备份 keystore 文件和配置文件哦!

更多关于如何在Flutter项目中配置持续集成和自动化打包发布?的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


作为屌丝程序员,我分享一个简单的Flutter持续集成(CI)与持续部署(CD)流程。

  1. 工具选择:推荐使用GitHub Actions或Jenkins。这里以GitHub Actions为例。
  2. 配置工作流
    • 创建.github/workflows/flutter.yml文件。
    • 内容如下:
      name: Flutter Build & Deploy
      
      on:
        push:
          branches:
            - main
      
      jobs:
        build:
          runs-on: ubuntu-latest
          steps:
            - uses: actions/checkout@v3
            - name: Set up Flutter
              uses: subosito/flutter-action@v1
              with:
                flutter-version: '3.7.1'
            - name: Install dependencies
              run: flutter pub get
            - name: Build APK
              run: flutter build apk --release
            - name: Upload APK
              uses: actions/upload-artifact@v3
              with:
                name: app-release.apk
                path: build/app/outputs/flutter-apk/app-release.apk
      
  3. 部署:根据需求,将APK上传到云存储(如阿里云OSS)或分发平台(如蒲公英)。
  4. 注意事项
    • 确保仓库有完整的pubspec.yaml和必要的依赖。
    • CI环境需安装Flutter并设置密钥用于自动上传。
    • Jenkins可通过Pipeline脚本实现类似功能,并支持更多自定义逻辑。

这样,每次代码提交到主分支时都会自动打包并上传,省去人工操作的麻烦。

Flutter持续集成与自动化打包发布教程

主要实现方案

Flutter应用的持续集成和自动化打包主要有以下几种方式:

  1. 使用GitHub Actions
  2. 使用Fastlane
  3. 使用Codemagic等CI/CD平台

GitHub Actions实现方案

1. 基础配置

在项目根目录创建.github/workflows文件夹,添加flutter-ci.yml文件:

name: Flutter CI/CD

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - uses: subosito/flutter-action@v1
        with:
          flutter-version: '3.7.0'
      - run: flutter pub get
      - run: flutter analyze
      - run: flutter test

2. 添加Android打包

  build-apk:
    needs: build
    runs-on: ubuntu-latest
    
    steps:
      - uses: actions/checkout@v2
      - uses: subosito/flutter-action@v1
      - run: flutter pub get
      - run: flutter build apk --release
      - uses: actions/upload-artifact@v2
        with:
          name: release-apk
          path: build/app/outputs/flutter-apk/app-release.apk

3. 添加iOS打包(需macOS)

  build-ios:
    needs: build
    runs-on: macos-latest
    
    steps:
      - uses: actions/checkout@v2
      - uses: subosito/flutter-action@v1
      - run: flutter pub get
      - run: flutter build ios --release --no-codesign
      - uses: actions/upload-artifact@v2
        with:
          name: release-ios
          path: build/ios/Release

Fastlane实现方案

  1. 安装Fastlane:
gem install fastlane -NV
  1. 在项目根目录初始化Fastlane:
cd ios
fastlane init
  1. 配置fastlane/Fastfile:
platform :ios do
  desc "Submit a new Beta Build to Apple TestFlight"
  lane :beta do
    increment_build_number(xcodeproj: "Runner.xcodeproj")
    build_app(workspace: "Runner.xcworkspace", scheme: "Runner")
    upload_to_testflight
  end
end
  1. 执行发布:
fastlane ios beta

Codemagic配置

  1. 登录Codemagic并连接代码仓库
  2. 配置构建流程:
    • 选择Flutter项目
    • 配置Android/iOS构建步骤
    • 设置自动触发条件
  3. 配置发布渠道:
    • App Store Connect
    • Google Play
    • Firebase App Distribution等

最佳实践建议

  1. 使用环境变量管理敏感信息
  2. 设置代码质量检查步骤
  3. 添加测试覆盖率报告
  4. 使用分支策略管理不同环境
  5. 监控构建状态和通知机制

以上方案可以根据项目需求组合使用,实现从代码提交到应用发布的完整自动化流程。

回到顶部