The ultimate all-in-one Flutter application packaging and distribution tool, providing a seamless solution for all your distribution needs.
Warning
Rust Migration In Progress: The core of Fastforge is being rewritten in Rust to deliver better performance, a smaller install footprint, and zero runtime dependencies on the Dart SDK. The new implementation lives in the crates/ directory and is being developed in parallel with the existing Dart packages.
What this means for you:
- The current Dart-based CLI (
dart pub global activate fastforge) continues to work and receives bug fixes. - The Rust CLI will be released as a native binary — no Dart or Flutter SDK required to run it.
- APIs and configuration formats are designed to remain compatible; any breaking changes will be clearly announced.
- Contributions, feedback, and bug reports on the Rust implementation are very welcome — see the Contributing section.
English | 简体中文
Complete documentation is available at fastforge.dev.
- 🚀 One-Click Build: Support for Android APK/AAB, iOS IPA, OpenHarmony HAP/APP and more
- 📦 Multi-Platform Release: Support for App Store, Google Play, Firebase, Pgyer, fir.im, etc.
- 🔄 CI/CD Integration: Perfect integration with GitHub Actions, GitLab CI, and more
- 🛠 Flexible Configuration: Support for multiple environments, flavors, and custom build arguments
- Android: AAB, APK
- iOS: IPA
- OpenHarmony: HAP, APP
- Linux: AppImage, DEB, RPM, Pacman
- macOS: DMG, PKG
- Windows: EXE, MSIX
- Universal: ZIP
- More formats coming soon...
- App Store
- Firebase
- Firebase Hosting
- FIR
- GitHub Releases
- PGYER
- Play Store
- Qiniu
- Vercel
- More platforms coming soon...
dart pub global activate fastforge- Add
distribute_options.yamlto your project root:
variables:
PGYER_API_KEY: "your api key" # Replace with your own API keys
output: dist/
releases:
- name: dev
jobs:
# Build and publish APK to 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
# Build and publish IPA to 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: pgyerNote:
build_argsare parameters supported by theflutter buildcommand. Modify them according to your project requirements.
- Release your app:
fastforge release --name devfastforge package --platform=android --targets=aab,apkfastforge publish --path dist/your-app-1.0.0+1-android.apk --targets pgyerfastforge release --name devFastforge includes several example projects to help you get started:
- hello_world - Basic example demonstrating the core functionality.
- multiple_flavors - Example showing how to configure multiple application flavors.
- custom_binary_name - Example of how to customize binary output names.
Fastforge supports using environment variables in your configuration files. This is useful for sensitive information like API keys:
variables:
API_KEY: ${PGYER_API_KEY} # Uses the PGYER_API_KEY environment variableFastforge works well in CI/CD environments. For example, with GitHub Actions:
jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
- name: Install Fastforge
run: dart pub global activate fastforge
- name: Build and release
run: fastforge release --name production
env:
API_KEY: ${{ secrets.API_KEY }}Check the documentation for more detailed CI/CD integration examples.
- Biyi - A convenient translation and dictionary app.
- Qianji - A purely bookkeeping app.
- Airclap - Send any file to any device. cross platform, ultra fast and easy to use.
Contributions are welcome! If you'd like to help improve Fastforge:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please make sure to update tests as appropriate and follow the existing code style.