Submission1-click submission

1-click submission uses EAS (Expo Application Services) to build and submit your app to both iOS and Android stores with a single command.

Prerequisites

Before submitting, ensure you have:

  • [ ] Apple Developer account ($99/year) — Enroll here
  • [ ] Google Play Developer account ($25 one-time) — Register here
  • [ ] App Store Connect app record created
  • [ ] Google Play Console app created
  • [ ] EAS CLI installed: npm install -g eas-cli
  • [ ] EAS account: eas login or eas register
  • [ ] All assets prepared (see Preparing assets)

Setup

1. Install EAS CLI

bash

2. Login to EAS

bash

If you don't have an account, register first:

bash

3. Configure EAS

Run the setup command in your project root:

bash

This creates an eas.json file with build profiles.

4. Configure app.config.ts

Ensure your general.config.ts has:

  • appName: Your app name
  • slug: URL-friendly app identifier
  • version: App version (e.g., "1.0.0")
  • iosBundleId: Your iOS bundle ID (e.g., "com.yourcompany.appname")
  • androidBundleId: Your Android package name (e.g., "com.yourcompany.appname")

Building for submission

iOS build

Build for App Store submission:

bash

This creates an .ipa file ready for App Store submission.

Android build

Build for Play Store submission:

bash

This creates an .aab (Android App Bundle) file ready for Play Store submission.

Both platforms

Build for both platforms simultaneously:

bash

Submitting to stores

iOS (App Store)

Option 1: Automatic submission

bash

EAS will:

  1. Use the latest iOS build
  2. Upload to App Store Connect
  3. Submit for review (if configured)

Option 2: Manual submission

  1. Download the build from EAS dashboard
  2. Upload to App Store Connect manually
  3. Complete submission in App Store Connect

Required credentials:

  • App Store Connect API key (recommended) or Apple ID credentials
  • Configure in eas.json or provide when prompted

Android (Google Play)

Option 1: Automatic submission

bash

EAS will:

  1. Use the latest Android build
  2. Upload to Google Play Console
  3. Submit for review (if configured)

Option 2: Manual submission

  1. Download the build from EAS dashboard
  2. Upload to Google Play Console manually
  3. Complete submission in Play Console

Required credentials:

  • Google Play Service Account JSON key
  • Configure in eas.json or provide when prompted

Both platforms

Submit to both stores:

bash

Configuration (eas.json)

Example eas.json configuration:

json

Credentials setup

iOS credentials

Option 1: App Store Connect API Key (recommended)

  1. Create API key in App Store Connect
  2. Download the .p8 key file
  3. Note the Key ID and Issuer ID
  4. Configure in eas.json or use eas credentials

Option 2: Apple ID

  • Use your Apple ID and app-specific password
  • Less secure, requires 2FA

Android credentials

Google Play Service Account:

  1. Go to Google Play Console
  2. Navigate to Setup → API access
  3. Create or link a service account
  4. Download the JSON key file
  5. Configure path in eas.json or use eas credentials

Workflow example

Complete submission workflow:

bash

Troubleshooting

Build fails

  • Check eas.json configuration
  • Verify app.config.ts settings
  • Review build logs in EAS dashboard
  • Ensure all environment variables are set

Submission fails

  • Verify store credentials are correct
  • Check that app records exist in stores
  • Ensure build is for the correct platform
  • Review submission logs

Credentials issues

  • Use eas credentials to manage credentials
  • For iOS: Ensure certificates and provisioning profiles are valid
  • For Android: Verify service account has correct permissions

Useful commands

bash

Resources