An open API service indexing awesome lists of open source software.

https://github.com/fastforgedev/fastforge

The ultimate all-in-one Flutter application packaging and distribution tool, providing a seamless solution for all your distribution needs.
https://github.com/fastforgedev/fastforge

flutter flutter-distributor

Last synced: 30 days ago
JSON representation

The ultimate all-in-one Flutter application packaging and distribution tool, providing a seamless solution for all your distribution needs.

Awesome Lists containing this project

README

        

# fastforge

[![pub version][pub-image]][pub-url] [![][discord-image]][discord-url] [![melos](https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square)](https://github.com/invertase/melos) [![All Contributors][all-contributors-image]](#contributors)

[pub-image]: https://img.shields.io/pub/v/fastforge.svg?style=flat-square
[pub-url]: https://pub.dev/packages/fastforge
[discord-image]: https://img.shields.io/discord/884679008049037342.svg?style=flat-square
[discord-url]: https://discord.gg/zPa6EZ2jqb
[all-contributors-image]: https://img.shields.io/github/all-contributors/fastforgedev/fastforge?color=ee8449&style=flat-square

卓越的 [Flutter](https://flutter.dev) 应用打包与发布工具,为您提供一站式解决方案,满足各种分发需求。

> **更名通知:** ~~Flutter Distributor~~ 已更名为 Fastforge。如果您之前使用的是 ~~Flutter Distributor~~,请注意所有功能保持不变,但包名、命令和文档已更新以反映此变更。

---

[English](./README.md) | 简体中文

---

## 文档

完整文档请访问 [fastforge.dev](https://fastforge.dev/zh)。

## 主要特性

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

### 支持的打包格式

- **Android**: [AAB](https://fastforge.dev/zh/makers/aab), [APK](https://fastforge.dev/zh/makers/apk)
- **iOS**: [IPA](https://fastforge.dev/zh/makers/ipa)
- **Linux**: [AppImage](https://fastforge.dev/zh/makers/appimage), [DEB](https://fastforge.dev/zh/makers/deb), [RPM](https://fastforge.dev/zh/makers/rpm), Pacman
- **macOS**: [DMG](https://fastforge.dev/zh/makers/dmg), [PKG](https://fastforge.dev/zh/makers/pkg)
- **Windows**: [EXE](https://fastforge.dev/zh/makers/exe), [MSIX](https://fastforge.dev/zh/makers/msix)
- **通用**: [ZIP](https://fastforge.dev/zh/makers/zip)
- 更多格式持续增加中...

### 支持的分发平台

- [App Center](https://fastforge.dev/zh/publishers/appcenter)
- [App Store](https://fastforge.dev/zh/publishers/appstore)
- [Firebase](https://fastforge.dev/zh/publishers/firebase)
- [Firebase Hosting](https://fastforge.dev/zh/publishers/firebase-hosting)
- [FIR](https://fastforge.dev/zh/publishers/fir)
- [GitHub Releases](https://fastforge.dev/zh/publishers/github)
- [PGYER](https://fastforge.dev/zh/publishers/pgyer)
- [Play Store](https://fastforge.dev/zh/publishers/playstore)
- [Qiniu](https://fastforge.dev/zh/publishers/qiniu)
- [Vercel](https://fastforge.dev/zh/publishers/vercel)
- 更多平台持续增加中...

## 安装

```bash
dart pub global activate fastforge
```

## 快速开始

1. 在项目根目录添加 `distribute_options.yaml` 文件:

```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_args` 是 `flutter build` 命令支持的参数,请根据您的项目需求进行修改。

2. 发布您的应用:

```bash
fastforge release --name dev
```

## CLI 命令

### 打包应用

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

### 发布应用包

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

### 发布(打包 + 发布)

```bash
fastforge release --name dev
```

## 示例项目

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

- **[hello_world](https://github.com/fastforgedev/fastforge/tree/main/examples/hello_world)** - 演示核心功能的基础示例。
- **[multiple_flavors](https://github.com/fastforgedev/fastforge/tree/main/examples/multiple_flavors)** - 展示如何配置多种应用风格的示例。
- **[custom_binary_name](https://github.com/fastforgedev/fastforge/tree/main/examples/custom_binary_name)** - 展示如何自定义二进制输出名称的示例。

## 高级用法

### 环境变量

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

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

### CI/CD 集成

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

```yaml
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 集成示例请查阅[文档](https://fastforge.dev/zh/)。

## 谁在使用?

- [比译](https://biyidev.com/) - 一个便捷的翻译和词典应用。
- [钱迹](https://qianjiapp.com/) - 一款纯粹记账的应用。
- [Airclap](https://airclap.app/) - 任何文件,任意设备,随意发送。简单好用的跨平台高速文件传输 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

💻






Add your contributions



## 许可证

[MIT](./LICENSE)