Skip to content

Latest commit

 

History

History
249 lines (195 loc) · 15.6 KB

File metadata and controls

249 lines (195 loc) · 15.6 KB

fastforge 原 Flutter Distributor

pub version pub downloads melos All Contributors

卓越的 Flutter 应用打包与发布工具,为您提供一站式解决方案,满足各种分发需求。

Warning

Rust 迁移进行中: Fastforge 的核心正在用 Rust 重写,以实现更好的性能、更小的安装体积,以及对 Dart SDK 零运行时依赖。新的实现位于 crates/ 目录,与现有 Dart 包并行开发。

这对您意味着什么:

  • 当前基于 Dart 的 CLI(dart pub global activate fastforge)仍然可用,并会持续收到问题修复。
  • Rust CLI 将以原生二进制文件发布——运行时无需安装 Dart 或 Flutter SDK。
  • API 和配置格式设计上保持兼容;任何破坏性变更都会提前明确公告。
  • 非常欢迎对 Rust 实现提交贡献、反馈和问题报告——请参阅参与贡献部分。

English | 简体中文


文档

完整文档请访问 fastforge.dev

主要特性

  • 🚀 一键打包:支持 Android APK/AAB、iOS IPA、OpenHarmony HAP/APP 等多种格式
  • 📦 多平台发布:支持 App Store、Google Play、Firebase、蒲公英、fir.im 等
  • 🔄 CI/CD 集成:完美支持 GitHub Actions、GitLab CI 等持续集成平台
  • 🛠 灵活配置:支持多环境、多 flavor、自定义构建参数

支持的打包格式

支持的分发平台

安装

dart pub global activate fastforge

快速开始

  1. 在项目根目录添加 distribute_options.yaml 文件:
variables:
  PGYER_API_KEY: "your api key" # 替换为您自己的 API 密钥
output: dist/
releases:
  - name: dev
    jobs:
      # 构建并发布 APK 到 PGYER
      - name: release-dev-android
        package:
          platform: android
          target: apk
          build_args:
            target-platform: android-arm,android-arm64
            dart-define:
              APP_ENV: dev
        publish_to: pgyer

      # 构建并发布 IPA 到 PGYER
      - name: release-dev-ios
        package:
          platform: ios
          target: ipa
          build_args:
            export-options-plist: ios/dev_ExportOptions.plist
            dart-define:
              APP_ENV: dev
        publish_to: pgyer

注意: build_argsflutter build 命令支持的参数,请根据您的项目需求进行修改。

  1. 发布您的应用:
fastforge release --name dev

CLI 命令

打包应用

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

发布应用包

fastforge publish --path dist/your-app-1.0.0+1-android.apk --targets pgyer

发布(打包 + 发布)

fastforge release --name dev

示例项目

Fastforge 包含多个示例项目,帮助您快速上手:

高级用法

环境变量

Fastforge 支持在配置文件中使用环境变量,这对于 API 密钥等敏感信息非常有用:

variables:
  API_KEY: ${PGYER_API_KEY} # 使用 PGYER_API_KEY 环境变量

CI/CD 集成

Fastforge 在 CI/CD 环境中工作良好。例如,使用 GitHub Actions:

jobs:
  build-and-release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: subosito/flutter-action@v2
      - name: 安装 Fastforge
        run: dart pub global activate fastforge
      - name: 构建并发布
        run: fastforge release --name production
        env:
          API_KEY: ${{ secrets.API_KEY }}

更详细的 CI/CD 集成示例请查阅文档

谁在使用?

  • 比译 - 一个便捷的翻译和词典应用。
  • 钱迹 - 一款纯粹记账的应用。
  • Airclap - 任何文件,任意设备,随意发送。简单好用的跨平台高速文件传输 APP。

参与贡献

欢迎贡献代码!如果您想帮助改进 Fastforge:

  1. Fork 仓库
  2. 创建您的特性分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m '添加一些很棒的特性')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建一个 Pull Request

请确保适当更新测试并遵循现有的代码风格。

贡献者

LiJianying
LiJianying

💻
Zero
Zero

💻
Kingkor Roy Tirtho
Kingkor Roy Tirtho

💻
LAIIIHZ
LAIIIHZ

💻
Tomohiro Ueki
Tomohiro Ueki

💻
Sven Gehring
Sven Gehring

💻
GargantuaX
GargantuaX

💻
Hiperion
Hiperion

💻
Reuben Turner
Reuben Turner

💻
Ankit Mahato
Ankit Mahato

📖
Tien Do Nam
Tien Do Nam

💻
zacks
zacks

💻
Mohammed  CHAHBOUN
Mohammed CHAHBOUN

💻
Prateek Sunal
Prateek Sunal

💻
lllgm
lllgm

💻
Arran Ubels
Arran Ubels

💻
Sherman Chu
Sherman Chu

💻 📖
DrSheppard
DrSheppard

📖
cranst0n
cranst0n

💻
duskygloom
duskygloom

💻
imnadev
imnadev

💻
jenken827
jenken827

💻
kecson
kecson

💻
zzqayy
zzqayy

💻
Add your contributions

许可证

MIT