前言
之前写了一篇 《使用 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,示例如下
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-id
将app-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
打开 App Gallery Connect 平台,可看到应用包已经被上传完成