flutter如何实现自动化打包

最近在学习Flutter开发,想请教一下如何实现自动化打包?目前每次发布都要手动执行一堆命令,效率太低。有没有什么好的工具或者脚本可以简化这个过程?最好是能集成到CI/CD流程中的方案,比如Jenkins或GitHub Actions。另外,iOS和Android的自动化打包配置有什么区别吗?求大佬分享经验!

2 回复

使用Flutter实现自动化打包,可通过以下方式:

  1. 使用Flutter命令flutter build apkflutter build ios
  2. 结合CI/CD工具:如Jenkins、GitHub Actions或GitLab CI,配置脚本自动触发打包流程。
  3. 自定义脚本:编写Shell或Python脚本,集成代码拉取、依赖安装、打包和上传等步骤。

推荐使用CI/CD工具,简化流程并提高效率。

更多关于flutter如何实现自动化打包的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中实现自动化打包主要通过以下几种方式:

1. 使用Flutter官方命令(基础方式)

# Android打包
flutter build apk --release
# 或生成app bundle
flutter build appbundle --release

# iOS打包
flutter build ios --release

2. 使用Fastlane(推荐)

安装Fastlane

# 安装fastlane
gem install fastlane

# 在项目根目录初始化
cd android && fastlane init
cd ios && fastlane init

Android配置(android/fastlane/Fastfile)

lane :build_release do
  flutter_build_apk
  gradle(
    task: 'assemble',
    build_type: 'Release'
  )
end

lane :deploy do
  build_release
  upload_to_play_store
end

iOS配置(ios/fastlane/Fastfile)

lane :build_release do
  flutter_build_ios
  build_app(
    workspace: "Runner.xcworkspace",
    scheme: "Runner"
  )
end

3. 使用GitHub Actions(CI/CD)

创建 .github/workflows/build.yml

name: Flutter Build

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    
    steps:
    - uses: actions/checkout@v2
    
    - name: Setup Flutter
      uses: subosito/flutter-action@v2
      
    - name: Install dependencies
      run: flutter pub get
      
    - name: Build APK
      run: flutter build apk --release
      
    - name: Upload APK
      uses: actions/upload-artifact@v2
      with:
        name: app-release
        path: build/app/outputs/flutter-apk/app-release.apk

4. 使用自定义脚本

创建 build.sh

#!/bin/bash

echo "开始Flutter自动化打包..."

# 清理项目
flutter clean

# 获取依赖
flutter pub get

# 生成Android APK
echo "生成Android APK..."
flutter build apk --release

# 生成iOS(需要在Mac上运行)
if [[ "$OSTYPE" == "darwin"* ]]; then
    echo "生成iOS..."
    flutter build ios --release
fi

echo "打包完成!"

5. 关键配置要点

  • 环境变量:配置签名证书路径、密钥等敏感信息
  • 版本管理:自动递增版本号
  • 代码检查:在打包前运行测试和静态分析
  • 多渠道打包:使用 --dart-define 参数区分环境

推荐方案

对于团队项目,推荐使用 Fastlane + GitHub Actions 组合:

  • Fastlane处理平台特定的构建逻辑
  • GitHub Actions提供CI/CD流水线
  • 实现代码提交后自动构建、测试和部署

这样可以在保证构建质量的同时,显著提高开发效率。

回到顶部