Mistflowdocs
Publish and distribute

Build and share an Android app

Turn your app into a file people can install, share it with a link or QR code, and set up the signing key that makes updates possible.

An Android build is a real installable app. No store, no review, no waiting. Send someone a link and they have your app.

Set your signing key first

Do this before the first build you give to anyone. It takes a minute and it is painful to fix afterwards.

Android identifies an app by the key it was signed with. If build 2 is signed with a different key than build 1, phones refuse to install it over the top, with INSTALL_FAILED_UPDATE_INCOMPATIBLE. The only fix is uninstalling first, which loses the person's local data.

Without a key of your own, each build gets a throwaway one, which is fine for a one-off demo and wrong for anything you will update.

Upload a release keystore once from the project's App tab, in the store setup section. Every build afterwards is signed with it and updates install cleanly.

Keep your keystore

Your keystore is the identity of your app on Android. Lose it and you cannot ship an update to anyone who has the app installed, and you cannot update a Play Store listing either. Keep your own copy somewhere safe.

Build it

Open the project's App tab and press Build Android in the release section.

It takes roughly twelve minutes and runs in the cloud, so you can close the page. Progress and build activity show on the release.

Share it

When the build finishes you get:

  • A download for the APK file
  • An install page with a QR code you can send to anyone

The install page is public: anyone with the link can install the app. Treat the link accordingly.

Installing it

Android asks for permission before installing an app that did not come from the Play Store. The person tapping the link will see a prompt about installing from their browser and needs to allow it once.

That prompt is normal and it is worth telling testers about it in advance, otherwise it reads as a warning that something is wrong.

Updating an installed app

Depends on what changed:

ChangeHow it reaches people
Screens, logic, copy, stylingNext time they open the app, no reinstall
A new device capability, a platform upgrade, a permission changeA new build they have to install

Details in Shipping updates.

When a build fails

Open the release and read the build activity. It shows what stopped the build and whether it can be retried; use Retry when it is offered.

The most common causes are a change that needs a capability the app does not declare, and a build that ran out of time. Both are visible in the activity rather than being reported as a generic failure.

APK or AAB

The build produces an APK, which is what you want for direct installs and testing.

The Play Store wants an AAB instead. See Google Play.

Limits worth knowing

  • The install page has no access control. Anyone with the link can install
  • There is no automatic update for directly installed apps beyond the interface-level updates above. A new build is a new install
  • Build usage counts against your plan

On this page