Mobile App Publishing
Learn how to build, publish, and update your mobile app using Expo and EAS.
Overview
Your mobile app is built using Expo, a powerful framework for React Native. This means you can run your app on both iOS and Android from a single codebase.
To publish your app to the Apple App Store and Google Play Store, we recommend using Expo Application Services (EAS). EAS is a cloud service that builds your app binaries for you, handling certificates, signing credentials, and keys automatically.
1. Local Setup
Before you can build your app, you need to set it up locally on your computer.
- Download Source Code: Click the "Download" button in the top right corner of the editor to download your project files.
- Unzip: Extract the downloaded zip file to a folder on your computer.
- Open in Editor: Open this folder in a code editor like VS Code.
- Open Terminal: Open a terminal window in your editor (Terminal > New Terminal).
2. Prerequisites
You'll need a few things installed to proceed:
- Node.js: Ensure you have Node.js installed. You can download it from nodejs.org.
- Expo Account: Create a free account at expo.dev/signup.
- EAS CLI: Install the EAS command line tool globally by running this command in your terminal:
npm install -g eas-cli
3. Configure Project
Login to your Expo account in the terminal:
eas login
Initialize your project with EAS. This will create an eas.json file in your project root which controls your build configuration:
eas build:configure
Select All when asked which platforms to configure. This generates a default eas.json.
Important: Ensure your production profile in eas.json looks like this for store submission:
{
"build": {
"production": {
"node": "18.x",
"android": {
"buildType": "app-bundle"
},
"ios": {
"distribution": "store"
}
}
}
}
4. Build for Stores
Start the build process for both Android and iOS:
eas build --platform all --profile production
EAS will ask you a series of questions to generate credentials (keystores, certificates, provisioning profiles). For a first-time setup, you can generally accept the defaults (choose "Generate new..." options).
- Android: Will generate an
.aabfile. - iOS: Will generate an
.ipafile.
Once the build is complete, you can download these files from the Expo dashboard link provided in the terminal.
5. Submit to Stores
You can automate the submission process using EAS Submit.
Android (Google Play Store): You need a Google Play Developer account and a Service Account Key (JSON file) from the Google Cloud Console.
eas submit -p android --latest
This uploads your latest build to the Google Play Console.
iOS (Apple App Store): You need an Apple Developer Program membership. EAS can handle the authentication.
eas submit -p ios --latest
This uploads your latest build to App Store Connect.
You can also combine build and submit:
eas build --platform all --auto-submit
6. Deploying Updates (OTA)
For small changes (JavaScript, styling, assets), you don't need to rebuild the native binary or re-submit to stores. You can use EAS Update to push changes over-the-air (OTA) instantly.
Updates are linked to branches (like Git) and your builds listen to channels.
To publish an update to the production branch:
eas update --branch production --message "Fixed login bug"
All users running a build linked to the production channel will receive this update the next time they open the app.
Build apps by chatting with AI
Turn your ideas into reality. No coding experience required.
Start Building Free