前言

之前写了一篇 《使用 Fastforge 构建适用于 HarmonyOS NEXT / OpenHarmony 的 Flutter App》

但是作为懒狗的我,突然想到,我构建完了还要自己上传到应用商店 - App Gallery,还是有些麻烦了。

然后我发现 App Gallery 支持通过 Publishing API 来上传构建好的 App,所以给 Fastforge 加上了 上传到 App Gallery 的支持。

目前 PR 已合并, 并发布于 0.6.5 版本

使用方法

1. 创建 Connect API 客户端

根据文档 《创建 AppGallery Connect API 客户端》,创建 API 客户端并获得 client_id 和 client_secret,示例如下

2025-08-25T10:48:26.png

2. 安装 Fastforge

可以参考上一篇中的安装教程

使用 Fastforge 构建适用于 HarmonyOS NEXT / OpenHarmony 的 Flutter App

3. 使用说明

在环境中暴露 Connect API 的 client id 和 client secret

export APP_GALLERY_CLIENT_ID="your client id"
export APP_GALLERY_CLIENT_SECRET="your client secret"

然后在项目中执行如下指令,即可上传到 App Gallery;其中 app-id 为应用在 App Gallery 中的 APP ID

fastforge publish \
  --path dist/1.0.0+1/hello_world-1.0.0+1-ohos.app \
  --targets appgallery \
  --appgallery-app-id <app-id>
--appgallery-app-idapp-id 参数传递给发布器。你也可以在 distribute_options.yaml 中配置相同的 app-id(见下例)。

如上用法,实际上是先构建 app 再上传,可参考如下配置,快速构建并上传到 App Gallery。

output: dist/
variables:
  FLUTTER_ROOT: ./.fvm/flutter_sdk # 由于我项目使用 FVM 托管 SDK
  APP_GALLERY_CLIENT_ID: 'your client id'
  APP_GALLERY_CLIENT_SECRET: 'your client secret'
releases:
  - name: ohos-release
    jobs:
      - name: release-ohos-app
        package:
          platform: ohos
          # 应用市场仅支持 'app' 格式
          target: app
          build_args:
            # 可选,默认为 default, 对应 ohos 中的 product name
            flavor: release
        publish:
          target: appgallery
          args:
            # 应用在 AppGallery Connect 上的 APP ID
            app-id: 'your app id'

4. 演示

如果没有全局 Dart/Flutter 环境,临时使用项目中的 FVM Flutter SDK 中的 Dart

$env:PATH += ";$PWD\.fvm\flutter_sdk\bin" # Windows(powershell)
export PATH=$PATH:$PWD/.fvm/flutter_sdk/bin # Linux / macOS

假设 distribute_options.yaml 中配置了名为 ohos-release 的 releases 配置项,执行

fastforge release --name ohos-release --skip-clean

2025-08-25T11:46:18.png

打开 App Gallery Connect 平台,可看到应用包已经被上传完成

2025-08-25T11:47:33.png


参考文档

最后修改:2025 年 08 月 27 日
如果觉得我的文章对你有用,请随意赞赏