背景介绍
在开发 OHOS-Flutter 应用时,我原本计划构建一个便捷的打包工具来简化流程。但在调研过程中,我发现了一个非常实用的自动化打包工具 Fastforge,它已经支持多种平台的 Flutter 应用打包与发布。
于是我为 Fastforge 提交了 PR,适配了 OHOS-Flutter 打包 HAP/APP(HarmonyOS NEXT / OpenHarmony)的功能。目前该 PR 已被合并,fastforge: ^0.6.0
版本已支持,可直接用于 OHOS-Flutter 的打包任务。
关于 Fastforge
Fastforge 是一款全能的 Flutter 应用打包和发布工具,为您提供一站式解决方案,满足各种分发需求。
主要特性
- 🚀 一键打包:支持 Android APK/AAB、iOS IPA、OpenHarmony HAP/APP 等多种格式
- 📦 多平台发布:支持 App Store、Google Play、Firebase、蒲公英、fir.im 等
- 🔄 CI/CD 集成:完美支持 GitHub Actions、GitLab CI 等持续集成平台
- 🛠 灵活配置:支持多环境、多 flavor、自定义构建参数
官方资源
安装 Fastforge
将 .pub-cache/bin
添加到 PATH
为了在命令行中访问 fastforge
,需要将 pub 缓存目录下的 bin
目录添加到系统 PATH。
平台 | 路径 |
---|---|
macOS 或 Linux | $HOME/.pub-cache/bin |
Windows | %LOCALAPPDATA%\Pub\Cache\bin% |
激活 Fastforge
dart pub global activate fastforge
如果你使用了 FVM 来管理 Flutter SDK,可在项目目录下执行:
fvm dart pub global activate fastforge
使用 Fastforge 打包 OHOS-Flutter 应用
1. 配置签名信息
仅针对 HarmonyOS NEXT / OpenHarmony,其他平台请参考官方文档。
在你的项目中的 ohos/build-profile.json5
文件中配置好应用的签名信息。
2. 配置多 flavor(可选)
如果需要构建多个 flavor 的产物,可以在 ohos/build-profile.json5
中配置多个 products
,后续通过 fastforge
命令指定构建哪个 flavor。
3. 创建 Fastforge 配置文件
在项目根目录下创建 distribute_options.yaml
配置文件,示例如下:
output: dist/
# 构建产物输出目录,建议加入 .gitignore
variables:
FLUTTER_ROOT: ./.fvm/flutter_sdk
# 如果使用 FVM 管理 Flutter SDK,可通过此变量指定 SDK 路径
4. 开始打包
切换到项目根目录并执行以下命令:
# 如果没有全局 Dart 环境,临时使用项目中的 Flutter SDK 中的 Dart
export PATH=$PATH:$PWD/.fvm/flutter_sdk/bin
fastforge package --platform ohos --targets app --build-flavor release --skip-clean
构建完成后,你可以在 dist
目录下找到构建产物:
dist
└── 1.0.30+1000066
└── woodbox-release-1.0.30+1000066-ohos.app
参数说明
参数名 | 含义说明 |
---|---|
--platform | 指定目标平台,OHOS 为 ohos |
--targets | 打包格式,OHOS 支持 hap 或 app |
--build-flavor | 构建 flavor,对应 ohos/build-profile.json5 中配置的 products 名称,默认为 default |
--skip-clean | 构建前跳过 flutter clean |
更多功能和文档,请关注官方文档