EAS Build & Submit

Configure eas.json, create development, preview and production builds, and submit to both stores.

EAS Build compiles your app in the cloud and manages signing; EAS Submit uploads the result to the stores.

Core concepts

  1. eas.json profiles: Define development (dev client, internal), preview (internal testers) and production (store) profiles. — EAS Build
  2. Credentials: Let EAS manage certificates and keystores unless you have a reason not to, and back up the Android keystore. — EAS Build
  3. Environment variables and secrets: Use EAS environment variables and secrets for build-time configuration; keep public values in EXPO_PUBLIC_ and private ones out of the app. — Expo env vars
  4. Submit: Run eas submit with the latest build, supplying store credentials or API keys configured once. — EAS Submit

Concept videos

YouTube channels and searches for these topics. On a large screen they open in the reading panel next to the roadmap.

Explanation

Build profiles for different jobs

Development builds iterate fast; preview builds go to testers; production builds go to stores. Keep their configuration separate so a test setting never reaches production.

Build failures

Read the build log's first error. Common causes: native dependency mismatch, missing credentials and incompatible Node or SDK versions.

What Is It?

EAS Build and Submit are Expo's cloud services for compiling and publishing apps.

Why Should I Care?

They remove the need to maintain local native toolchains and signing by hand.

Real World Analogy

EAS Build is a contract factory that builds your product to spec, and Submit is the courier delivering it to the stores.

Visual Mental Model

text
eas.json profile -> cloud build (signed) -> .ipa/.aab -> eas submit -> store

Smallest Possible Example

json
{
  "cli": { "version": ">= 12.0.0" },
  "build": {
    "development": { "developmentClient": true, "distribution": "internal" },
    "preview": { "distribution": "internal" },
    "production": { "autoIncrement": true }
  },
  "submit": { "production": {} }
}

Common Mistakes

❌ Using the production profile for testing.

You burn store build numbers and risk shipping debug settings.

❌ Losing the Android upload keystore.

You cannot update the app; let EAS manage it or store a backup.

Build This Mini Project

Create all three profiles, produce a preview build for iOS and Android and install both on real devices.

Prompts for Cursor, Claude Code & Codex

Paste these into Cursor, Claude Code, Codex, or any coding agent. Replace the bracketed parts with your app details, and keep the agent in plan mode first so you review the approach before it edits files.

Fix a build failure

text
This EAS build failed. Here is the log: [paste]. Identify the first real error, its likely cause, and the smallest fix. Do not change unrelated config.

Rules, databases & blogs to use

Resources

Threads in the same domain as this chapter — go deeper on iHateReading without leaving the roadmap.

393 SaaS directories and the agent that has to use them cover

393 SaaS directories and the agent that has to use them

Launch and backlink strategy for a finished product.

Hosting under $100/month at 10k visitors cover

Hosting under $100/month at 10k visitors

Cut hosting burn for agent-heavy apps with sane infra choices.

Expo new version SDK 52 cover

Expo new version SDK 52

What a real Expo SDK upgrade changes for app builders.