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.
- Comprehensive Package Format Support - Effortlessly generate platform-specific distribution files including APK, IPA, and desktop installation packages.
- Seamless Distribution Platform Integration - Publish directly to major app marketplaces including Google Play Store and Apple App Store, streamlining your release workflow.
- Flexible Configuration Options - Customize your packaging and publishing process through intuitive yet powerful configuration settings.
- Future-Proof Updates - Continuously maintained to ensure compatibility with the latest Flutter framework and platform requirements.
- Android: AAB, APK
- iOS: IPA
- Linux: AppImage, DEB, RPM, Pacman
- macOS: DMG, PKG
- Windows: EXE, MSIX
- Universal: ZIP
- More formats coming soon...
- App Center
- 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.yaml
to 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: pgyer
Note:
build_args
are parameters supported by theflutter build
command. Modify them according to your project requirements.
- Release your app:
fastforge release --name dev
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 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 variable
Fastforge 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.