Skip to content

Create a Release

In order to start pushing updates, you will need to create a release.

Creating a release builds and submits your app to Shorebird. Shorebird saves the compiled Dart code from your application in order to make updates smaller in size.

Create an Android release by running the following command:

shorebird release android

Example output:

$ shorebird release android
✓ Building release (9.6s)
✓ Fetching apps (0.2s)
✓ Detecting release version (0.2s)
✓ Fetching releases (68ms)

🚀 Ready to create a new release!

📱 App: new_flutter_app (7a29188a-9363-426a-9a36-74a5e166373d)
📦 Release Version: 1.0.0+1
🕹️  Platform: android (arm64, arm32, x86_64)

Would you like to continue? (y/N) Yes
✓ Fetching Flutter revision (30ms)
✓ Updating release status (67ms)
✓ Creating artifacts (2.8s)
✓ Updating release status (62ms)

✅ Published Release!

Your next step is to upload the app bundle to the Play Store.
build/app/outputs/bundle/release/app-release.aab

See the following link for more information:
https://support.google.com/googleplay/android-developer/answer/9859152?hl=en

If your application supports flavors or multiple release targets, you can specify the flavor and target using the --flavor and --target options:

shorebird release android --target ./lib/main_development.dart --flavor development

By default, shorebird release android builds an AppBundle (.aab). If you would like to also generate an Android Package Kit (.apk), use the following command:

shorebird release android --artifact apk

To release with a different Flutter version, you can specify the version using the --flutter-version flag.

shorebird release android --flutter-version 3.44.4
OptionAbbreviationDescription
--platforms-pComma-separated list of platforms to release simultaneously (e.g., android,ios).
--flavorThe product flavor to use when building.
--target-tThe main entrypoint file of the application.
--flutter-versionThe Flutter version to build with (e.g., 3.24.0). Defaults to the version bundled with Shorebird.
--build-nameOverride the version name (e.g., 1.2.3).
--build-numberOverride the version code / build number (e.g., 42).
--artifactAndroid artifact type: aab (default) or apk.
--dry-run-nBuild and validate the release but do not upload it. Ideal for CI validation.
--obfuscateObfuscate Dart code. Must be used together with --split-debug-info.
--split-debug-infoOutput debug symbol files to the specified directory when obfuscating.
OptionDescription
--no-codesignSkip code signing for the iOS build.
--export-options-plistPath to a custom ExportOptions.plist for the iOS archive export step.
--export-methodDistribution method: app-store, ad-hoc, development, or enterprise.

Releasing for Multiple Platforms Simultaneously

Section titled “Releasing for Multiple Platforms Simultaneously”

If your app supports multiple platforms, you can build and publish releases for them in a single command using the --platforms (or -p) option:

shorebird release --platforms=android,ios

This will compile the binaries for the specified platforms and register them as a single version release in your Shorebird console. Note that to release for iOS or macOS, you must run this command on macOS hardware.

In addition to using the Shorebird console, you can manage your app’s releases directly from the command line using the shorebird releases commands.

To list all releases associated with your app:

shorebird releases list

This will output a list of all releases, showing their version number, target platform, Flutter version, and active patch number.

You can view all of your releases for your current app (as defined by your shorebird.yaml) on the Shorebird console.

Shorebird Console List Releases

To view detailed information for a specific release version:

shorebird releases info --release-version 1.0.0+1

This command displays metadata for the release, including which platforms are active and details of any patches created for it.

If you created an Android release using an App Bundle (.aab) and want to generate local APKs from it for testing or side-loading, you can download them using:

shorebird releases get-apks --release-version 1.0.0+1

This will download the release artifacts and extract the compatible APK files to your machine.

You can delete a release for your app (as defined by your shorebird.yaml) on the Shorebird console.

  1. Navigate to the application.
  2. Click on the release you wish to delete.
  3. Go to the “Settings” tab at the top of the page.
  4. In the “Danger Zone” there will be a “Delete” button.

In order to complete the delete request, you do need to confirm which binaries you would like to be deleted. You can easily delete all releases or pick by platform. The list of platforms shown is based on the binaries that are uploaded for that release.

Release Delete Platform Confirm Dialog in Shorebird Console

A common question we get asked is: Does Shorebird require publishing to the App Store or Play Store?

No. Shorebird works fine with side-loading and mobile device management (MDM) on Android. We haven’t had anyone try Shorebird with the iOS Developer Enterprise program, but we expect it to work just as well.

To build Shorebird for distribution via APK (e.g., side-loading), use the --artifact flag with the shorebird release command. For example:

shorebird release android --artifact=apk

That will produce both .apk and .aab files. You can distribute either or both as needed.

Create a PatchPush over-the-air updates to your published release.
Play Store GuideLearn how to submit your release to the Google Play Store.
App Store GuideLearn how to submit your release to the Apple App Store.