DocumentationPublishing
Available from the Builder plan

Publishing your app on the App Store and Google Play

The app you already published on the web becomes a real native app, with push and camera, and goes to the stores under your own developer account. Setting it up takes about 10 minutes; the first publication takes 1 to 2 days, because of the stores' review.

Costs no credits: no step in this guide uses AI credits.

What is yours and what is ours

The app ships under your developer account, never under ours. That is not paperwork: the store listing, the ratings, the downloads and the money from purchases are yours, and stay yours if you ever leave the platform.

What we do: we wrap your published app in a native shell, generate the icon and the splash screen, build it in the cloud (no Mac needed) and submit it with the credential you connected. What is yours: the developer account, creating the app in the store's console, and answering the review.

The native app runs the published version of your project. If you have not published on the web yet, the tab asks for that first, because there is nothing to wrap.

Before you start

  • the project published on the web (the Publish button);
  • the Builder plan or above;
  • a developer account on the store you want to ship to: Google Play (one-time US$ 25) and/or the Apple Developer Program (US$ 99 a year), paid directly to the store;
  • an hour of patience with the store's console the first time.

You can do Android now and iOS later. The two platforms move independently from beginning to end.

Where it is

The Mobile app tab, in the editor's icon column. It is the last one, with the phone icon.

The editor's Mobile app tab, with the call to turn the project into a native app and the two possible paths: a test build to install on a device, or publishing to the stores.

The five setup steps

The wizard saves as you go, so you can leave halfway and come back.

Step What you decide
Stores where the app ships: App Store, Google Play or both
Brand icon, splash screen and the app identifier
Features camera, photos, location, biometrics, push and share
Accounts the Apple and Google credentials (the guide Connecting your Apple and Google accounts covers every field)
Review check everything and publish

Brand

The icon has to be a square 1024×1024 PNG. Without one, we generate an icon from the app's initial over your brand colour. Apple rejects icons with a transparent background: send it filled, with no rounded corners, because the system rounds them itself.

The splash screen works best as a PNG with the logo centred and a transparent background, since the colour you pick fills the rest of the screen. A full-screen photo gets cropped differently on every device.

The app identifier

It is the app's unique address in the stores, in the form com.yourcompany.yourapp. We suggest one from the project's name, and you can replace it with your domain reversed.

The wizard's Brand step, with the app icon, the background colour and the suggested identifier, next to the column that numbers the five setup steps.

It does not change after the first publication. Changing it later does not rename the app: it creates a new app in the store, and your user base, ratings and downloads stay with the old one. Check it before you publish.

On Google Play there is one more trap: the app has to exist in the console with exactly that identifier before the submission. Google's API does not create the app, so if the package is not there the submission fails with Package not found. The screen shows the identifier with a copy button precisely so you can paste it into the Play Console without missing a character.

Features

Turn on what the app really uses. The stores expect a native app to use native features for real: an app that is only the website inside a shell tends to be rejected, more often by Apple.

The wizard's Features step, listing camera, photos, location, biometrics, push and share, each with a line explaining what it is for.

Turning push on here is what makes the app ask for notification permission. On Android, actually delivering the notification also needs the two Firebase files, in the Accounts step.

Test build: install it before you submit

Before sending anything to a store, use the Test build. It produces an app you install straight on a device, without going through the store, and takes 10 to 30 minutes.

The two sides behave differently when the build finishes:

  • Android: you get an APK and the Install button hands you the file. It installs on the device right away;
  • iOS: the package is uploaded to App Store Connect and shows up in TestFlight once Apple has processed it. There is no file to download and install on the iPhone directly.

Either way: an app you have never opened on a device should not go to review.

Publishing

In the Review step the button is Publish to the stores. From there the screen shows three states, per platform:

The wizard's Review step, summarising the identifier, the enabled features, the chosen stores and the connected accounts, above the button that publishes to the stores.

State What it means
Building generating the native app in the cloud. 10 to 30 minutes
Sending to the store the package is ready and is being uploaded. The store has not answered yet
Submitted to the store the store accepted the package. The review starts now

The difference between the last two is the one that confuses people, and it is real: a package can be built and still be refused at submission (wrong identifier, missing permission). That is why "Submitted to the store" only appears when the store confirms receipt, not when the build finishes.

After that, the store's console is what tells you. The review happens inside Apple and Google, and we have no way to follow it. It takes from a few hours to 2 days, longer for an app's first version.

A new personal Google Play account: the 12 testers

If your Google Play account is personal and was created after 13 November 2023, Google requires, before opening production, a closed test with at least 12 testers opted in continuously for 14 days. It is per app, not per account.

This is not a Fabapp requirement and there is no way around it from here: the submission works, the app becomes available on the testing track, and production only opens after you apply for access and Google approves it (up to 7 days). Organization accounts and personal accounts created before that date are exempt.

Plan for it from the start if your account is new: those are 14 calendar days that cannot be sped up.

The store deadlines that are ours, not yours

The stores require apps to be built with recent tooling, and those deadlines are our responsibility: we keep the native shell up to date and you do not have to do anything.

So that you know they exist: Google Play requires new apps and updates to target Android 16 (API 36) from 31 August 2026, and Apple requires uploads to App Store Connect to be built with the iOS 26 SDK or later from 28 April 2026.

When something fails

Symptom Almost always
Package not found on the Android submission the app does not exist in the Play Console with that identifier, or the identifier differs
the Android submission is refused for permissions the service account exists but was never given permission to publish in the Play Console
the iOS build fails at the end, mentioning a certificate the App Store Connect key does not have the Admin role
the iOS app does not show up in TestFlight Apple is still processing the package. Usually a few minutes
push works on the iPhone and not on Android the Firebase files are missing in the Accounts step

Every build's full log is in the tab itself, under See the full log. It is the first thing to look at, and its error message is usually literal.

Open Fabapp
Related
Connecting your Apple and Google accountsSelling subscriptions inside the appPublishing your app