Skip to content
Go back

Publishing Expo Apps to App Store & Play Store

Publishing Expo Apps to App Store & Play Store

Introduction

Publishing your Expo app to app stores involves building binaries, configuring credentials, and submitting for review. This guide covers both iOS and Android.

Prerequisites

Step 1: Configure App Metadata

Update app.json:

{
  "expo": {
    "name": "MyApp",
    "slug": "myapp",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "splash": { "image": "./assets/splash.png" },
    "ios": {
      "bundleIdentifier": "com.example.myapp",
      "buildNumber": "1"
    },
    "android": {
      "package": "com.example.myapp",
      "versionCode": 1
    }
  }
}

Step 2: Build Standalone Apps

iOS

expo build:ios
# Choose managed credentials or provide your own

Android

expo build:android
# Select apk or aab

Step 3: Download Binaries

After build completes, download the .ipa (iOS) and .aab or .apk (Android) from Expo dashboard.

Step 4: Submit to App Store

Use Transporter app or Xcode Organizer:

xcrun altool --upload-app -f MyApp.ipa -t ios --apiKey YOUR_API_KEY --apiIssuer YOUR_ISSUER_ID

Step 5: Submit to Play Store

Use expo upload:android or Play Console:

expo upload:android --key path/to/google-play-key.json

Or via CLI:

fastlane supply --aab MyApp.aab --json_key google-play-key.json --package_name com.example.myapp

Step 6: Automate CI/CD

Integrate GitHub Actions:

name: Publish Expo
on: push
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: expo/expo-github-action@v7
        with:
          expo-version: latest
          expo-command: build:android --non-interactive
      - uses: actions/upload-artifact@v3
        with:
          name: android-app
          path: ./android/app/build/outputs/*.aab

Summary

Use expo build to generate store binaries, configure credentials, and submit with Transporter or Play Console. Automate builds with CI/CD for streamlined releases.


Share this post on:

Previous Post
Deploying a Fastify App with Dokploy
Next Post
Connecting Expo Apps to AWS Amplify Backend