You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows机器上如何为Flutter应用搭建CD(持续交付)流程?

Windows下Flutter持续交付的替代方案

针对Windows机器无法使用Fastlane的情况,以下是几种成熟的Flutter持续交付方案,均完美支持Windows环境:

GitHub Actions

这是最轻量化的方案,直接利用GitHub提供的Windows托管运行器,官方有现成的Flutter环境配置Action,和GitHub仓库集成无缝。

你只需要在仓库根目录创建.github/workflows/flutter-cd.yml文件,配置构建、测试、打包流程:

name: Flutter 持续交付
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  android-build:
    runs-on: windows-latest
    steps:
      - name: 拉取代码
        uses: actions/checkout@v4
      
      - name: 配置Flutter环境
        uses: subosito/flutter-action@v2
        with:
          flutter-version: '3.13.0' # 替换为你的Flutter版本
          channel: 'stable'
      
      - name: 安装依赖
        run: flutter pub get
      
      - name: 运行单元测试
        run: flutter test
      
      - name: 构建Release APK
        run: flutter build apk --release
      
      - name: 上传构建产物
        uses: actions/upload-artifact@v3
        with:
          name: android-release-apk
          path: build/app/outputs/flutter-apk/app-release.apk

优势:免费额度足够个人或小型团队使用,配置简洁,无需维护自己的服务器。

Azure DevOps Pipelines

微软官方的CI/CD工具,对Windows环境支持极佳,既可以使用微软托管的Windows虚拟机,也可以配置自托管代理(直接用你的Windows机器作为运行节点)。

创建Pipeline时选择Windows-latest作为虚拟机镜像,编写yaml配置:

trigger:
  branches:
    include:
      - main

pool:
  vmImage: 'windows-latest'

steps:
  - script: |
      choco install flutter --version=3.13.0 --confirm
      flutter doctor
    displayName: '安装并配置Flutter'
  
  - script: flutter pub get
    displayName: '安装项目依赖'
  
  - script: flutter test
    displayName: '执行单元测试'
  
  - script: flutter build apk --release
    displayName: '构建Release APK'
  
  - task: PublishBuildArtifacts@1
    displayName: '发布构建产物'
    inputs:
      PathtoPublish: 'build/app/outputs/flutter-apk'
      ArtifactName: 'AndroidAPKs'
      publishLocation: 'Container'

优势:深度集成微软生态,支持部署到Azure App Service、Google Play或华为应用市场,自托管代理可充分利用本地Windows资源。

Jenkins

老牌开源CI/CD工具,可直接在Windows机器上安装服务端,完全自定义工作流,适合复杂的交付场景。

  1. 在Windows上安装Jenkins,完成基础配置后,下载Flutter SDK并添加到系统环境变量PATH;
  2. 创建Pipeline项目,编写Jenkinsfile定义流程:
pipeline {
    agent { label 'windows' } // 指定Windows节点(需提前配置)
    stages {
        stage('拉取代码') {
            steps {
                git url: '你的仓库地址', branch: 'main'
            }
        }
        stage('安装依赖') {
            steps {
                bat 'flutter pub get'
            }
        }
        stage('单元测试') {
            steps {
                bat 'flutter test'
            }
        }
        stage('构建APK') {
            steps {
                bat 'flutter build apk --release'
            }
        }
        stage('归档产物') {
            steps {
                archiveArtifacts artifacts: 'build/app/outputs/flutter-apk/app-release.apk', fingerprint: true
            }
        }
    }
}

优势:高度灵活,支持与各类第三方工具集成,适合已有Jenkins环境的团队。

GitLab CI/CD

如果你的代码托管在GitLab,可以配置自托管Windows Runner来实现CI/CD:

  1. 在Windows机器上安装GitLab Runner并注册到你的项目;
  2. 在仓库根目录创建.gitlab-ci.yml:
stages:
  - 测试
  - 构建

flutter测试:
  stage: 测试
  tags:
    - windows-runner # 对应你的Windows Runner标签
  script:
    - flutter pub get
    - flutter test

flutter构建:
  stage: 构建
  tags:
    - windows-runner
  script:
    - flutter build apk --release
  artifacts:
    paths:
      - build/app/outputs/flutter-apk/app-release.apk
    expire_in: 7 days

优势:适合GitLab生态用户,自托管Runner可复用本地Windows机器资源。

额外注意点

Windows环境无法直接打包iOS应用(依赖Xcode),如果需要覆盖iOS交付,可在CI/CD流程中添加macOS运行器的阶段(比如GitHub Actions的macos-latest、Azure的macOS-latest镜像),单独处理iOS打包步骤。

内容的提问来源于stack exchange,提问作者Rasul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 16:12:48