Skip to content

Answers use only the pages of this documentation, and every answer links to the pages it came from. Your question is sent to our answering service to be answered, and kept so the people who write these pages can see what readers ask.

📦 Publish

Android and iOS builds, the web app, and instant over-the-air updates.

Publish is where the app leaves the builder. It does four things: builds an Android binary, builds an iOS binary, publishes the web app, and ships over-the-air updates to apps people have already installed.

Four sections. Android is open by default.

Build format — a toggle between two artifacts:

  • AAB — App Bundle, for publishing to Google Play.
  • APK — for direct install or sideloading.

Build AAB / Build APK starts the build.

While it runs, the current step is shown with a spinner, and View log opens the live output. The steps are:

Queued → Fetching your app → Installing dependencies → Configuring → Generating native project → Signing → Compiling Android binary → Uploading

Below is the Android build history. Each past build is a row you can download from. If there are none, it says No builds yet.

Produces a signed .ipa for the App Store, under your own Apple account.

This section needs two things from Settings first: an iOS Bundle ID, and a connected App Store Connect key. Until both are present the section says so and points you there.

Progress, logs and history work the same as Android.

Publishes your app as a website at a public URL — the same code, exported for the browser.

Publish web app starts it, with the same live progress and log.

Once published, Live site opens the production website. Web builds keep their own history, like the native ones.

The last section ships updates to apps that are already installed.

Ship JavaScript & asset updates to live apps instantly. Native changes (new permissions or native modules) still need a rebuilt binary.

That distinction is the whole point of the section. Screens, text, styling, logic and assets can go out in seconds. Anything that changes the native shell cannot.

Warning

A new device permission is a native change. Editing a permission message in Integrations takes effect on the next build, not on the next over-the-air update.

OTA Update is the channel. It shows what is currently live on it:

  • The update’s short id
  • The runtime version it targets
  • When it was published, and its message

If nothing has gone out yet, it reads Nothing published yet.

Publish current app ships whatever the app is now.

Every release, newest first, with:

  • Its short id
  • The runtime version
  • The platforms it covers
  • Which channels it is live on
  • When it was published, and its message

Use this to see what people are actually running, which is not always the same as your latest build.