Skip to content

Latest commit

 

History

History
229 lines (175 loc) · 12.3 KB

README.md

File metadata and controls

229 lines (175 loc) · 12.3 KB

fastforge

pub version melos All Contributors

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

Name Change Notice: Flutter Distributor has been renamed to Fastforge. If you were previously using Flutter Distributor, please note that all functionality remains the same, but the package name, commands, and documentation have been updated to reflect this change.


English | 简体中文


Documentation

Complete documentation is available at fastforge.dev.

Features

  • 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.

Supported Package Formats

Supported Distribution Platforms

Installation

dart pub global activate fastforge

Quick Start

  1. 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 the flutter build command. Modify them according to your project requirements.

  1. Release your app:
fastforge release --name dev

CLI Commands

Package Your App

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

Publish a Package

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

Release (Package + Publish)

fastforge release --name dev

Examples

Fastforge includes several example projects to help you get started:

Advanced Usage

Environment Variables

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

CI/CD Integration

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.

Who's Using It?

  • 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.

Contributing

Contributions are welcome! If you'd like to help improve Fastforge:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please make sure to update tests as appropriate and follow the existing code style.

Contributors

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

License

MIT