icon

Shorebird Release

Builds and publishes a new Shorebird release for iOS and/or Android.

Runs shorebird release - a drop-in replacement for flutter build that compiles your app and uploads its Dart artifacts to Shorebird's servers as the baseline future patches diff against. You still need to upload the generated artifact (.ipa/.apk/.aab) to the App Store / Play Store yourself (or via a follow-up deploy Step) - Shorebird doesn't do that part.

Flutter version

Shorebird maintains its own private Flutter cache, independent of any system-installed Flutter. Leave Flutter version empty to auto-detect the version of the system Flutter already on PATH (via flutter --version --machine) and pass it through, keeping the Shorebird-built binary in lockstep with whatever Flutter version the rest of your workflow uses - or set it explicitly to pin a version. If Flutter isn't installed/found on PATH at all and no version is set explicitly, the Step fails with a clear error - a Flutter Install (or FVM) Step must run before this one in that case.

Releasing for multiple platforms

Set Platform to both to release iOS and Android in one Step run - each platform is built and published as its own shorebird release invocation, registered together as one version release. Releasing for iOS (or both iOS and Android together) requires a macOS runner.

Building a smaller Android APK for one architecture

By default, three Android ABIs are compiled (arm, arm64, x86_64). Use Android target platform(s) to restrict this to one or more specific architectures. Note this only applies to release - patches never need it.

Signing issues

If you hit iOS provisioning/certificate errors: for local builds, enable "Automatically manage signing" in Xcode's Signing & Capabilities tab. For CI, set up an ExportOptions.plist describing your export method, provisioning profiles, signing certificate, signing style, and team ID, and point Export options plist path at it.

Side-loading and MDM

Shorebird doesn't require App Store or Play Store publishing - it works with side-loading and MDM distribution on Android (and enterprise iOS programs work similarly). Set Android artifact type to apk to produce a directly installable .apk instead of an .aab.

Managing releases after publishing

This Step only creates new releases. To list, inspect, or delete existing releases, use the shorebird releases CLI commands directly, or the Shorebird console. Deleting a release from the console is irreversible and removes all of its patches.

Configuring the Step

  1. In Project Location the root directory of your Flutter project is automatically filled out. It must contain a shorebird.yaml (created by running shorebird init locally and committing the result) - this Step fails fast with a clear error if it's missing.
  2. Set Shorebird API token to a Shorebird Console API key, stored as a Bitrise Secret.
  3. Select Platform, leave Flutter version empty (or pin one explicitly).
  4. For Android, pick Android artifact type and adjust Android output pattern if your build output goes somewhere non-default.
  5. For iOS, configure Codesign iOS build?, Export method, and Export options plist path as needed, and adjust iOS output pattern if needed.

Useful links

Similar steps

Create a new release in JIRA.

Creates a list of features and gathered from git commits and tags using given pattern.

Create Github Release

Easily extract release notes for your project's changelog