# Build and publish a mobile app

> Build an iPhone and Android app in a Cloud project, try it on your phone, and publish it to the App Store and Google Play.
> Source: https://playcode.io/docs/publish/mobile-apps - last reviewed 2026-10-09.
> Ask Playcode's agent: "Add a mobile app to this project and show it on my phone." It builds the app, starts the phone preview and can run the store builds; developer accounts, their fees and the final submit stay with you.

A Cloud project can hold an iPhone and Android app beside your website, built with Expo and React Native and connected to the same backend: someone who signs up on your site can sign in on the phone. You try it on your phone from the **Phone** tab, and the agent can build it for the App Store and Google Play in Expo's cloud, so you need no Mac.

## Do it yourself

1. In a Cloud project, ask in the chat for a mobile app. The agent asks which kind you want: your site inside an app, or a native app built beside your site. Then it builds it and starts the phone preview.
2. Open the **Phone** tab. On a computer it opens by itself when the preview is ready; you can also open the project menu and choose **Phone** under **View**.
3. Point your phone's camera at the QR code. With **Browser** selected, the app opens in the phone's browser, with nothing to install. With **Expo Go** selected, it opens in the free Expo Go app.
4. For Expo Go on an iPhone, sign in to Expo Go, create a personal access token for the same account on expo.dev, and add it as `EXPO_TOKEN` in **Settings**, **Secrets**, marked **Secret**. Then ask the agent to restart the phone preview.
5. To publish to the stores, open your own Apple and Google developer accounts. Add the credentials the agent asks for in **Settings**, **Secrets**.
6. Ask the agent to build and upload the app. It drafts the store listing and takes screenshots from the running app.
7. Read every line of the listing, correct it, and submit the app for review in your own App Store Connect and Google Play Console accounts.

> [!COST]
> Apple and Google charge their own fees for developer accounts, and they ask for identity, tax and banking details. Those fees go to Apple and Google, not to Playcode. Check their current prices before you plan a launch.

## If it doesn't work

### The Phone tab says Not running

The preview is off until someone asks for it. Ask in the chat: "show it on my phone".

### "Your computer is asleep"

The development computer sleeps when nobody uses it. Choose **Wake it up**, or open the project in Playcode. The app on your phone shows the same message and a button that opens the project.

### "Your computer is stopped"

It was stopped on purpose. Start it in the project settings, then reload.

### Expo Go on an iPhone does not open the app

Expo Go on an iPhone opens the preview only when the project is signed in with your own Expo account. Use a personal access token in `EXPO_TOKEN`, not a robot token. The **Browser** link works without an account.

### Expo Go says the project uses another version

Expo Go runs one Expo version at a time. Ask the agent to move the app to the version that Expo Go runs today.

### A library does not load in the preview

The preview only carries the native parts that Expo ships. A library with its own native code needs a development build. Ask the agent for a library without native code, or for a development build.

### Apple or Google rejects the app

Apple and Google decide. An app that only shows a website is often refused: give it at least one job a phone does, like push notifications. Ask the agent to add it, then build and submit again.

## Limits

- A mobile app needs a Cloud project, which needs a Pro or Max plan. A Cloud project made before mobile apps existed has no app folder; the agent adds one.
- The preview runs on the development computer, which sleeps when it is quiet and after some hours without you or the agent in the project, even while the phone uses it. [Run a Cloud app](/docs/publish/cloud-apps) gives the times. Nothing on the phone can wake it.
- Anyone with the preview address can use the app while the development computer is awake. It is not your published app.
- The app is published under your own developer accounts, never under Playcode's. The final submit is yours.
- Playcode cannot promise that Apple or Google approves the app.
- Publishing the project in Playcode publishes the website and the backend. The mobile app reaches people through the stores.
