跳转到内容

CLI

如何使用 Fastforge 的命令行界面(CLI)

安装

Dart CLI(稳定版)

shell
dart pub global activate fastforge

Rust CLI(下一代,开发中)

Rust CLI 正在与 Dart CLI 并行开发中。它具有更好的性能、更小的安装体积,以及对 Dart SDK 零运行时依赖。

从源码构建:

bash
cargo install --path apps/cli
# 或在仓库根目录构建
cargo build -p fastforge && ./target/debug/fastforge --help

如果正在开发 Rust 代码:

bash
cargo run -p fastforge -- --help

Dart CLI 命令

这些命令按字母顺序排列,最常用的是 package、publish 和 release。

Package

将应用程序打包为特定于平台的格式,并将结果放入文件夹中。

FlagValueRequired
--platform平台, 如 android
--targets以逗号分隔的 maker 名称列表
--skip-clean跳过构建前的清理
--hook-pre打包前执行的 shell 命令
--hook-post打包后执行的 shell 命令

示例:

shell
fastforge package --platform=android --targets=aab,apk

fastforge package --platform=macos --target=zip --hook-pre 'echo "before"' --hook-post 'echo "after"'

Publish

FlagValueRequired
--path路径, 如 hello_world-1.0.0+1-android.apk
--targets以逗号分隔的 publisher 名称列表

示例:

shell
fastforge publish --path hello_world-1.0.0+1-android.apk --targets fir,pgyer

Release

会根据配置文件(distribute_options.yaml),将你的应用打包成特定的格式并发布到分发平台。

FlagValueRequired
--name名称, e.g. dev
--skip-clean跳过构建前的清理

示例:

shell
fastforge release --name dev

Rust CLI 命令

Rust CLI 提供了 Dart CLI 的所有能力,并增加了更多功能。 在仓库根目录运行或安装二进制后执行。

Analyze

分析应用包元信息(APK、AAB、IPA、DMG 等)。

bash
fastforge analyze /path/to/app.apk

# 输出到 JSON 文件
fastforge analyze /path/to/app.apk -o analysis.json

输出包含平台、标识符、版本、构建号和应用名称。

Build

直接构建 Flutter 应用产物(不打包/不发布)。

bash
# 构建 Android APK(带构建参数)
fastforge build \
  --platform android \
  --target apk \
  --build-flavor dev \
  --build-dart-define APP_ENV=dev
Flag描述必填
--platform目标平台(android, ios, macos, windows, linux, web, ohos
--target构建目标(apk, aab, ipa, hap, app 等)
--build-flavorBuild flavor(映射为 --flavor
--build-dart-defineDart 定义(KEY=VALUE),可重复

Package

(P1 - 命令入口已就绪,正在积极开发中)

Publish

(P1 - 命令入口已就绪,正在积极开发中)

Release

(P1 - 命令入口已就绪,正在积极开发中)

Store

管理应用商店中的应用(Google Play Console 和 App Store Connect)。

凭证设置:

通过环境变量或项目配置(.fastforge/config.yaml)设置:

bash
# App Store Connect
export APP_STORE_CONNECT_KEY_ID=D83848D23
export APP_STORE_CONNECT_ISSUER_ID=227b0bbf-ada8-458c-9d62-3d8022b7d07f
export APP_STORE_CONNECT_KEY_PATH=./AuthKey.p8

# Google Play Console
export GOOGLE_PLAY_SERVICE_ACCOUNT_JSON=./service-account.json

项目配置(.fastforge/config.yaml):

yaml
stores:
  appstore:
    key_id: "D83848D23"
    issuer_id: "227b0bbf-ada8-458c-9d62-3d8022b7d07f"
    key_path: "./AuthKey.p8"
    apps:
      - id: "1234567890"
        name: ios_production
  googleplay:
    key_path: "./service-account.json"
    apps:
      - id: "com.example.app"
        name: android_production

使用示例:

bash
# 列出应用(仅 App Store 支持,Google Play 有 API 限制)
fastforge store list-apps --store appstore

# 获取应用详情(有配置且只有一个 app 时,可省略 app-id)
fastforge store get-app --store appstore

# 获取应用详情(多个 app 时使用别名或 ID)
fastforge store get-app --store appstore --app ios_production
fastforge store get-app --store googleplay --app-id com.example.app

# 列出版本
fastforge store list-releases --store appstore --app ios_production
fastforge store list-releases --store googleplay --app-id com.example.app

Upgrade

更新 Fastforge 到最新版本。

Version Check

检查 fastforge 是否有新版本。

bash
fastforge version-check

资源说明

distribute_options.yaml(Dart CLI)

完整的配置参考请查看分发选项页面。

.fastforge/config.yaml(Rust CLI)

Rust CLI 使用 .fastforge/config.yaml 来存储商店凭证和项目级别设置。 如果此文件包含敏感凭证,不应提交到版本控制。

基于 MIT 许可发布