Search packages, repositories and app categories

Package detailsv1.0.0

simple_deploy

Effortlessly deploy to TestFlight and Play Store test tracks with a single Dart command!

AndroidiOSWebmacOSWindowsLinux
30-day downloads
110
Likes
60
Pub points
150

Install package

flutter pub add simple_deploy

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

Simple Deploy is a Flutter/Dart package that streamlines the process of publishing apps to TestFlight and Google Play Store test tracks using a single Dart command. It simplifies app distribution by automating build and upload steps, reducing manual effort and potential errors. Designed for developers who frequently test releases, it supports multiple platforms including Android, iOS, Web, macOS, Windows, and Linux. The package integrates seamlessly into existing workflows with minimal configuration, making it ideal for teams focused on rapid iteration and testing.

Use cases

  • Automated beta testing releases
  • Streamlining CI/CD pipelines
  • Quick deployment to TestFlight and Play Store
  • Reducing manual build/upload tasks
  • Cross-platform app distribution
  • Frequent release cycles

Key features

  • Single command deployment
  • Support for iOS and Android test tracks
  • Multi-platform compatibility
  • Minimal setup required
  • Integration with CI/CD systems
  • Built-in build automation

Suitable for

  • Flutter developers
  • Mobile app testing teams
  • CI/CD automation engineers
  • Fast-paced development environments
  • Teams using TestFlight or Play Store internal testing

Considerations

  • Requires proper credentials and access to Apple Developer and Google Play Console
  • May need additional environment variables for CI
  • Not intended for production app releases
  • Dependent on external services (Apple, Google)
  • Limited to test track deployments
  • Needs internet connection during execution

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

simple_deploy is a quick and easy way to deploy apps to the store's test systems

Features

Deploy to iOS Test Flight Deploy to Android Play Store tracks of your choice Supports flavors

Getting started

Install the dependency into your pubspec.yaml with the following:

dev_dependencies:
  simple_deploy: latest_version # e.g. ^0.23.0

Create a deploy.yaml file at the root of your project and configure it

Here is minimal example version of deploy.yaml

android:
  credentialsFile: "c:/credentials/project-credentials.json"
  packageName: "com.example.coolapp"
  whatsNew: "Simple bug fixes"

ios:
  # App Store Connect API configuration (All fields are required)
  issuerId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  keyId: "XXXXXXXXXX"
  privateKeyPath: "path/to/your/AuthKey_XXXXXXXXXX.p8"
  bundleId: "com.example.coolapp"
  
  # Optional fields
  whatsNew: "New features and improvements" # For "What's New" text in TestFlight
  flavor: "production"                   # Omit if not using flavors
  generatedFileName: "custom_name.ipa"   # Omit to use the default ipa name

And here's a version with all options set:

common:
  versionStrategy: "none"  # or "pubspecIncrement" or "storeIncrement"

android:
  credentialsFile: "c:/credentials/project-credentials.json"
  packageName: "com.example.coolapp"
  trackName: "internal"
  whatsNew: "Simple bug fixes"
  flavor: "flavor"            # specify a flavor if required, or omit if not using flavors
  generatedFileName: "fancyproject.aab"       # supply a custom file name for the aab, or omit if using the default

ios:
  # App Store Connect API configuration (required for storeIncrement version strategy)
  issuerId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"  # App Store Connect API Issuer ID
  keyId: "XXXXXXXXXX"  # App Store Connect API Key ID
  privateKeyPath: "path/to/AuthKey_XXXXXXXXXX.p8"  # Path to your private key file
  bundleId: "com.example.coolapp"  # Required for App Store submission
  whatsNew: "New features and improvements"  # Optional, used for App Store submission
  flavor: "flavor"            # specify a flavor if required, or omit if not using flavors
  generatedFileName: "fancyproject.ipa"         # supply a custom file name for the ipa, or omit if using the default
  autoIncrementMarketingVersion: false # defaults to false, updates the first part of the 'version' in the pubspec.yaml, e.g. 1.0.15+39 (it would increment to 1.0.16)
Parameter details

| flavor | Description | | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | --- | | flavorName | Optional parameter, which can be set for both android and iOS, don't supply if not using flavors, or provide the flavor name if using them | |

versionStrategy Description
none Default. Uses the current value in the pubspec.
pubspecIncrement Retrieves the current build number from the pubspec, increments it by one, and uses the updated number.
storeIncrement Gets the latest version code from the store (Play Store for Android), increments it by one, and updates the pubspec. For Android only.
trackName Description
internal Default. Deploys to the internal track.
alpha Deploys to the alpha track.
beta Deploys to the beta track.
production Deploys to the production track.

Here's the step-by-step instructions for configuring for each platform

Android configuration

iOS configuration

Usage

Just run dart run simple_deploy and select the deployment platform

You can also supply the platform with

  • dart run simple_deploy android
  • dart run simple_deploy ios
  • dart run simple_deploy ios --submit-review # This will also submit to App Store review after TestFlight processing

If you are using flavors you can add them here, they will override what is set in the pubspec.yaml, for example

  • dart run simple_deploy android --flavor flavorName

You can use the --pubspecIncrement flag to increment the build number for a specific deployment, regardless of the versionStrategy setting in your deploy.yaml:

  • dart run simple_deploy --pubspecIncrement

This flag will override the versionStrategy setting just for that deployment, allowing you to increment the build number only when needed.

Additional information

You'll need to get some developer details from App Store connect for the deploy.yaml file You will also need to set up a google cloud project to create the .json file required for android. See steps below of these:

Android configuration

Android configuration

iOS configuration

iOS configuration

Contributions

Thanks to the following people for their great contributions to this project KarlJan Reginaldo

Categories

Dependencies

Dependency list 8 items

Source repository

Projects using this package

No data available yet.