The ultimate all-in-one Flutter application packaging and distribution tool, providing a seamless solution for all your distribution needs.
Name Change Notice:
Flutter Distributorhas been renamed to Fastforge. If you were previously usingFlutter Distributor, please note that all functionality remains the same, but the package name, commands, and documentation have been updated to reflect this change.
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.