React-Expo

Lesson 8 of 9

Building and Publishing Your App

Once your app works in Expo Go, the final step is producing a real, installable build, and eventually shipping it to the App Store / Google Play.

EAS Build

EAS (Expo Application Services) builds native app binaries in the cloud, so you don't need a Mac to build an iOS app.

npm install -g eas-cli
eas login
eas build:configure
eas build --platform ios
eas build --platform android

eas build:configure sets up an eas.json with build profiles (e.g. development, preview, production), each can produce a different kind of build, a quick internal test build vs. a production, store-ready one.

App configuration

Your app's name, icon, splash screen, version, and bundle identifier all live in app.json (or app.config.js for dynamic config):

{
  "expo": {
    "name": "Kodstigen Notes",
    "slug": "kodstigen-notes",
    "version": "1.0.0",
    "icon": "./assets/icon.png",
    "ios": { "bundleIdentifier": "com.kodstigen.notes" },
    "android": { "package": "com.kodstigen.notes" }
  }
}

Submitting to the stores

eas submit --platform ios
eas submit --platform android

eas submit uploads your latest build directly to App Store Connect / the Google Play Console, from there it goes through each store's normal review process, exactly like an app built without Expo at all.

Over-the-air updates

For JavaScript-only changes (no new native code), EAS Update can push a new version directly to users who already installed your app, skipping the app store review entirely:

eas update --branch production --message "Fix login bug"

NOTE

OTA updates can only ship JavaScript/asset changes, if you add a new native dependency (like a new device API package), that requires a full new build submitted through the store again.

📝 Build & Publish Quiz

Passing score: 70%
  1. 1.What does EAS Build let you do without owning a Mac?

  2. 2.eas ____ uploads your latest build directly to the App Store or Google Play Console.

  3. 3.An over-the-air (OTA) update can ship a brand-new native dependency without a new store submission.