{"id":26583313,"url":"https://github.com/fastforgedev/fastforge","last_synced_at":"2025-05-14T21:07:06.696Z","repository":{"id":37437737,"uuid":"417769887","full_name":"fastforgedev/fastforge","owner":"fastforgedev","description":"The ultimate all-in-one Flutter application packaging and distribution tool, providing a seamless solution for all your distribution needs.","archived":false,"fork":false,"pushed_at":"2025-03-29T02:38:21.000Z","size":1578,"stargazers_count":957,"open_issues_count":60,"forks_count":151,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-04-28T09:06:10.768Z","etag":null,"topics":["flutter","flutter-distributor"],"latest_commit_sha":null,"homepage":"https://fastforge.dev/","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fastforgedev.png","metadata":{"files":{"readme":"README-ZH.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"lijy91"}},"created_at":"2021-10-16T08:45:38.000Z","updated_at":"2025-04-28T02:02:20.000Z","dependencies_parsed_at":"2024-01-24T16:43:49.010Z","dependency_job_id":"752a1db9-bcad-4af1-bff4-7612376aac0f","html_url":"https://github.com/fastforgedev/fastforge","commit_stats":{"total_commits":330,"total_committers":22,"mean_commits":15.0,"dds":0.2090909090909091,"last_synced_commit":"569a49060724e9f43c267539e6f8c34ebf9b5ac6"},"previous_names":["fastforgedev/fastforge","leanflutter/flutter_distributor"],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastforgedev%2Ffastforge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastforgedev%2Ffastforge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastforgedev%2Ffastforge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastforgedev%2Ffastforge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fastforgedev","download_url":"https://codeload.github.com/fastforgedev/fastforge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254227612,"owners_count":22035669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flutter","flutter-distributor"],"created_at":"2025-03-23T09:00:30.632Z","updated_at":"2025-05-14T21:07:01.564Z","avatar_url":"https://github.com/fastforgedev.png","language":"Dart","readme":"# fastforge\n\n[![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)\n\n[pub-image]: https://img.shields.io/pub/v/fastforge.svg?style=flat-square\n[pub-url]: https://pub.dev/packages/fastforge\n[discord-image]: https://img.shields.io/discord/884679008049037342.svg?style=flat-square\n[discord-url]: https://discord.gg/zPa6EZ2jqb\n[all-contributors-image]: https://img.shields.io/github/all-contributors/fastforgedev/fastforge?color=ee8449\u0026style=flat-square\n\n卓越的 [Flutter](https://flutter.dev) 应用打包与发布工具，为您提供一站式解决方案，满足各种分发需求。\n\n\u003e **更名通知：** ~~Flutter Distributor~~ 已更名为 Fastforge。如果您之前使用的是 ~~Flutter Distributor~~，请注意所有功能保持不变，但包名、命令和文档已更新以反映此变更。\n\n---\n\n[English](./README.md) | 简体中文\n\n---\n\n## 文档\n\n完整文档请访问 [fastforge.dev](https://fastforge.dev/zh)。\n\n## 主要特性\n\n- 🚀 一键打包：支持 Android APK/AAB、iOS IPA 等多种格式\n- 📦 多平台发布：支持 App Store、Google Play、Firebase、蒲公英、fir.im 等\n- 🔄 CI/CD 集成：完美支持 GitHub Actions、GitLab CI 等持续集成平台\n- 🛠 灵活配置：支持多环境、多 flavor、自定义构建参数\n\n### 支持的打包格式\n\n- **Android**: [AAB](https://fastforge.dev/zh/makers/aab), [APK](https://fastforge.dev/zh/makers/apk)\n- **iOS**: [IPA](https://fastforge.dev/zh/makers/ipa)\n- **Linux**: [AppImage](https://fastforge.dev/zh/makers/appimage), [DEB](https://fastforge.dev/zh/makers/deb), [RPM](https://fastforge.dev/zh/makers/rpm), Pacman\n- **macOS**: [DMG](https://fastforge.dev/zh/makers/dmg), [PKG](https://fastforge.dev/zh/makers/pkg)\n- **Windows**: [EXE](https://fastforge.dev/zh/makers/exe), [MSIX](https://fastforge.dev/zh/makers/msix)\n- **通用**: [ZIP](https://fastforge.dev/zh/makers/zip)\n- 更多格式持续增加中...\n\n### 支持的分发平台\n\n- [App Center](https://fastforge.dev/zh/publishers/appcenter)\n- [App Store](https://fastforge.dev/zh/publishers/appstore)\n- [Firebase](https://fastforge.dev/zh/publishers/firebase)\n- [Firebase Hosting](https://fastforge.dev/zh/publishers/firebase-hosting)\n- [FIR](https://fastforge.dev/zh/publishers/fir)\n- [GitHub Releases](https://fastforge.dev/zh/publishers/github)\n- [PGYER](https://fastforge.dev/zh/publishers/pgyer)\n- [Play Store](https://fastforge.dev/zh/publishers/playstore)\n- [Qiniu](https://fastforge.dev/zh/publishers/qiniu)\n- [Vercel](https://fastforge.dev/zh/publishers/vercel)\n- 更多平台持续增加中...\n\n## 安装\n\n```bash\ndart pub global activate fastforge\n```\n\n## 快速开始\n\n1. 在项目根目录添加 `distribute_options.yaml` 文件:\n\n```yaml\nvariables:\n  PGYER_API_KEY: \"your api key\" # 替换为您自己的 API 密钥\noutput: dist/\nreleases:\n  - name: dev\n    jobs:\n      # 构建并发布 APK 到 PGYER\n      - name: release-dev-android\n        package:\n          platform: android\n          target: apk\n          build_args:\n            target-platform: android-arm,android-arm64\n            dart-define:\n              APP_ENV: dev\n        publish_to: pgyer\n\n      # 构建并发布 IPA 到 PGYER\n      - name: release-dev-ios\n        package:\n          platform: ios\n          target: ipa\n          build_args:\n            export-options-plist: ios/dev_ExportOptions.plist\n            dart-define:\n              APP_ENV: dev\n        publish_to: pgyer\n```\n\n\u003e **注意:** `build_args` 是 `flutter build` 命令支持的参数，请根据您的项目需求进行修改。\n\n2. 发布您的应用:\n\n```bash\nfastforge release --name dev\n```\n\n## CLI 命令\n\n### 打包应用\n\n```bash\nfastforge package --platform=android --targets=aab,apk\n```\n\n### 发布应用包\n\n```bash\nfastforge publish --path dist/your-app-1.0.0+1-android.apk --targets pgyer\n```\n\n### 发布（打包 + 发布）\n\n```bash\nfastforge release --name dev\n```\n\n## 示例项目\n\nFastforge 包含多个示例项目，帮助您快速上手：\n\n- **[hello_world](https://github.com/fastforgedev/fastforge/tree/main/examples/hello_world)** - 演示核心功能的基础示例。\n- **[multiple_flavors](https://github.com/fastforgedev/fastforge/tree/main/examples/multiple_flavors)** - 展示如何配置多种应用风格的示例。\n- **[custom_binary_name](https://github.com/fastforgedev/fastforge/tree/main/examples/custom_binary_name)** - 展示如何自定义二进制输出名称的示例。\n\n## 高级用法\n\n### 环境变量\n\nFastforge 支持在配置文件中使用环境变量，这对于 API 密钥等敏感信息非常有用：\n\n```yaml\nvariables:\n  API_KEY: ${PGYER_API_KEY} # 使用 PGYER_API_KEY 环境变量\n```\n\n### CI/CD 集成\n\nFastforge 在 CI/CD 环境中工作良好。例如，使用 GitHub Actions：\n\n```yaml\njobs:\n  build-and-release:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - uses: subosito/flutter-action@v2\n      - name: 安装 Fastforge\n        run: dart pub global activate fastforge\n      - name: 构建并发布\n        run: fastforge release --name production\n        env:\n          API_KEY: ${{ secrets.API_KEY }}\n```\n\n更详细的 CI/CD 集成示例请查阅[文档](https://fastforge.dev/zh/)。\n\n## 谁在使用？\n\n- [比译](https://biyidev.com/) - 一个便捷的翻译和词典应用。\n- [钱迹](https://qianjiapp.com/) - 一款纯粹记账的应用。\n- [Airclap](https://airclap.app/) - 任何文件，任意设备，随意发送。简单好用的跨平台高速文件传输 APP。\n\n## 参与贡献\n\n欢迎贡献代码！如果您想帮助改进 Fastforge：\n\n1. Fork 仓库\n2. 创建您的特性分支 (`git checkout -b feature/amazing-feature`)\n3. 提交您的更改 (`git commit -m '添加一些很棒的特性'`)\n4. 推送到分支 (`git push origin feature/amazing-feature`)\n5. 创建一个 Pull Request\n\n请确保适当更新测试并遵循现有的代码风格。\n\n## 贡献者\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/lijy91\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3889523?v=4?s=100\" width=\"100px;\" alt=\"LiJianying\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLiJianying\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=lijy91\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://juejin.cn/user/764915820276439\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8764899?v=4?s=100\" width=\"100px;\" alt=\"Zero\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eZero\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=BytesZero\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/KRTirtho\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/61944859?v=4?s=100\" width=\"100px;\" alt=\"Kingkor Roy Tirtho\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKingkor Roy Tirtho\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=KRTirtho\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/laiiihz\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/35956195?v=4?s=100\" width=\"100px;\" alt=\"LAIIIHZ\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eLAIIIHZ\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=laiiihz\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ueki-tomohiro\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/27331430?v=4?s=100\" width=\"100px;\" alt=\"Tomohiro Ueki\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTomohiro Ueki\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=ueki-tomohiro\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://cybrox.eu/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2383736?v=4?s=100\" width=\"100px;\" alt=\"Sven Gehring\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSven Gehring\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=cybrox\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/GargantuaX\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/14013111?v=4?s=100\" width=\"100px;\" alt=\"GargantuaX\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eGargantuaX\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=GargantuaX\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/hiperioncn\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6045710?v=4?s=100\" width=\"100px;\" alt=\"Hiperion\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHiperion\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=hiperioncn\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/GroovinChip\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4250470?v=4?s=100\" width=\"100px;\" alt=\"Reuben Turner\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eReuben Turner\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=GroovinChip\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://animator.github.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/615622?v=4?s=100\" width=\"100px;\" alt=\"Ankit Mahato\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAnkit Mahato\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=animator\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://tienisto.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/38380847?v=4?s=100\" width=\"100px;\" alt=\"Tien Do Nam\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTien Do Nam\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=Tienisto\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://zacksleo.top/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3369169?v=4?s=100\" width=\"100px;\" alt=\"zacks\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ezacks\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=zacksleo\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/M97Chahboun\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/69054810?v=4?s=100\" width=\"100px;\" alt=\"Mohammed  CHAHBOUN\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMohammed  CHAHBOUN\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=M97Chahboun\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/prateekmedia\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/41370460?v=4?s=100\" width=\"100px;\" alt=\"Prateek Sunal\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePrateek Sunal\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=prateekmedia\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/LailaiMaster\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/19606597?v=4?s=100\" width=\"100px;\" alt=\"lllgm\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003elllgm\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/fastforgedev/fastforge/commits?author=LailaiMaster\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n  \u003ctfoot\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" size=\"13px\" colspan=\"7\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg\"\u003e\n          \u003ca href=\"https://all-contributors.js.org/docs/en/bot/usage\"\u003eAdd your contributions\u003c/a\u003e\n        \u003c/img\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tfoot\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n## 许可证\n\n[MIT](./LICENSE)\n","funding_links":["https://github.com/sponsors/lijy91"],"categories":["Dart"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastforgedev%2Ffastforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffastforgedev%2Ffastforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastforgedev%2Ffastforge/lists"}