Publish your mobile app to the stores
Pro
Build your Expo mobile app and send it to the App Store and Google Play from the Terminal in Site Haus, signed in with your own accounts.
Your mobile app is a normal Expo project, and Expo is already installed in Site Haus's Terminal. You sign in with your own Expo account there, then use Expo's build commands. Nothing has to be installed on your computer.
What you need#
| For | You need | Cost |
|---|---|---|
| Building | A free Expo account (expo.dev) | The free plan has a limited number of builds a month |
| Android and Google Play | A Google Play Console account | $25 once. New personal accounts must first run a closed test with about 12 testers for 14 days before a public release |
| iPhone and the App Store | An Apple Developer Program membership | $99 a year |
1. Open the Terminal and sign in#
In your mobile app project, press Open the Terminal in the Publish menu (or the + tab picker, then Shell). Then run:
npx eas-cli login
npx eas-cli initeas login asks for your Expo username and password (and its two-step code if you use one) right in the Terminal. Do not use npx expo login: it needs a web browser on the same machine and fails here. eas init creates the project on your Expo account: say yes when it asks. You only do this once for each app.
2. Give the app its own name and ids#
Open app.json in the code view and change these before you build for the stores:
expo.nameis the name under the icon.expo.ios.bundleIdentifierandexpo.android.packageare the app's unique ids. The starter usescom.example.yourname: change it to something that is yours, likecom.yourcompany.yourapp. The stores will not acceptcom.example.- Add an
icon(a 1024 × 1024 PNG) and, if you like, a splash image.
3. Android#
Build a file you can install on your own phone to test:
npx eas-cli build --platform android --profile previewThe first time, it asks if it should create a signing key for you: say yes. When it finishes, Expo prints a link and a QR code for the .apk. To build the file Google Play needs (an .aab):
npx eas-cli build --platform android --profile productionCreate the app in the Play Console, upload the .aab to a testing track, and fill in the store listing (description, screenshots, privacy policy). After the first release exists, npx eas-cli submit --platform android can upload new ones for you.
4. iPhone#
npx eas-cli build --platform ios --profile production
npx eas-cli submit --platform iosExpo asks you to sign in with your Apple Developer account and creates the certificates for you. The build goes to TestFlight, where you can try it on your phone. Then create the app in App Store Connect, add the listing and screenshots, and send it for review.
Test on your phone first#
Press Test on phone in the top bar for a code to scan with the free Expo Go app. See Build a mobile app. On an iPhone, Expo Go only opens an app when you are signed in to the same Expo account on the phone and in the Terminal (npx expo login).
Tips#
- Keep your Expo, Apple and Google logins safe. Anyone who has them can publish under your name.
- The Terminal needs the internet to reach Expo. It has it by default.
- Apple and Google review every app. The first review can take a day or more.
- Questions about a store's rules go to the store; questions about the build go to Expo's docs at docs.expo.dev.