Build & Publish to the Stores
Turn your project into real app files with EAS Build, then submit them to the Play Store and App Store.
What you will learn
- Build an installable app with EAS Build
- Know what each store needs
- Understand updates vs full resubmits
The journey from code to the store
Shipping an app has three clear stages. Keeping them separate in your head makes the whole process far less scary:
- Build — turn your JavaScript project into a real, installable app file (
.aabfor Android,.ipafor iOS). - Submit — upload that file to the Google Play Console or Apple App Store, with a name, icon, screenshots and description.
- Update — push later fixes to users, either as a new build or, for JS-only changes, over the air.
Stage 1 — From project to a real app file
During development you used Expo Go. To put your app in the stores, you must build the real installable files: an .aab for Android and an .ipa for iOS. Expo does this in the cloud with EAS Build, so you do not need a Mac for iOS.
npm install -g eas-cli
eas login
eas build:configure
eas build --platform android # or: --platform iosNote: Output: Build queued... Build complete! Download: https://expo.dev/artifacts/your-app.aab EAS compiles your app on its servers and gives you a download link to the finished file.
Stage 2 — What each store needs
| Step | Google Play (Android) | Apple App Store (iOS) |
|---|---|---|
| Account | One-time fee | Yearly fee |
| File you upload | .aab | .ipa |
| Listing | Name, icon, screenshots, description | Same, plus app review |
| Review wait | Usually fast | Can take longer |
EAS can even submit the file for you with eas submit --platform android, uploading straight to the store after a successful build.
Stage 3 — Updating later
Not every change needs a new store submission. For JavaScript-only changes, EAS Update can push the new code to users’ phones over the air:
eas update --branch production --message "Fix typo on home screen"Note: Output: Update published! Users get it next time they open the app. This works for JS and asset changes. Adding a new native module still needs a fresh build and store upload.
Watch out: Stores have rules. Apple in particular reviews every app and can reject it for missing privacy info, broken features or unclear screenshots. Read the guidelines before you submit to avoid delays.
Tip: Set your name, icon, version and slug in app.json before building — that is where the store gets your app’s name and icon from.
Q. What does EAS Update let you do without a full store resubmission?
✍️ Practice
- Set your app’s
nameandversioninapp.json. - Write the EAS command you would run to build for Android.
🏠 Homework
- Write a short checklist of everything you need to publish to one store: account, icon, screenshots, description and build command.