Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

eas-app-stores — Claude Code skill: iOS and Android releases to App

Skill for building and submitting iOS and Android apps to TestFlight, App Store, or Google Play. Works with Expo, React Native, and native apps — handles eas.json setup, signing, versioning, and store metadata.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add expo/skills --skill eas-app-stores -a claude-code
Open on GitHub

What eas-app-stores does

eas-app-stores covers the full app release cycle through EAS: from build configuration to store submission. The skill supports Expo and React Native projects, as well as native iOS and Android apps without Expo in the runtime. For SwiftUI/UIKit on iOS and native Android, separate guides are included — the skill helps you choose the right path before starting.

Inside: commands for production builds (eas build -p ios --profile production), automatic store submission (--auto-submit), version management (eas build:version:get, eas build:version:set), Apple and Google Play credential setup, example eas.json configs for Expo and native apps. Links to guides for TestFlight, App Store metadata, and Google Play submission.

Requires EAS CLI (npm install -g eas-cli), Apple Developer and Google Play memberships (separate, paid). EAS uses cloud resources with free tier and paid-plan limits. When setting up native iOS versioning, check the archived CFBundleVersion — EAS version counter alone does not prove Xcode used it.

What it helps with

  • build and submit an iOS app to App Store or TestFlight
  • configure signing and Apple and Google Play credentials
  • automate build and release through CI/CD with EAS Workflows
  • manage version numbers and build identifiers for iOS and Android
  • prepare store listings, metadata and app icons

Example prompts for the agent

  • Help me set up eas.json for iOS and Android production builds with automatic version increment
  • How do I submit the current build to TestFlight using eas-app-stores?
  • Show me how to configure Google Play signing via service account for a native Android app

How to install eas-app-stores

1Skills CLI (Vercel)

npx skills add expo/skills --skill eas-app-stores -a claude-code

2Manually: put the files in place

~/.claude/skills/eas-app-stores/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/eas-app-stores/

From the same set20

The whole set →
expo-dev-client expo Skill for building and distributing custom Expo development clients to physical devices via local builds or TestFlight. Use it when your app includes native code, Apple widgets, or third-party native modules not in Expo Go. Claude Code CX Codex Cursor +1 70,000installs expo-module expo Complete reference for building native modules and view components in Swift, Kotlin, and TypeScript for Expo apps. Use when writing a new module or adding native functionality—camera, sensors, system APIs. Claude Code CX Codex Cursor +1 44,900installs expo-ui expo A skill for building interfaces that compile to real native code: SwiftUI on iOS, Jetpack Compose on Android. Helps the agent use the right component instead of reaching for Reanimated or heavy community libraries. Claude Code CX Codex Cursor +1 31,600installs expo-native-ui expo Guides your coding agent in building native-feeling Expo screens with Apple HIG styling, @expo/ui components, SF Symbols, and semantic colors. Claude Code CX Codex Cursor +1 31,400installs expo-router expo Skill for file-based routing, stacks, modals and tabs in Expo Router. Use it when building navigation in a React Native mobile app. Claude Code CX Codex Cursor +1 27,700installs expo-brownfield expo Embeds React Native and Expo into existing native iOS and Android apps. Useful when adding cross-platform screens to SwiftUI, UIKit, or Kotlin hosts. Claude Code CX Codex Cursor +1 27,700installs expo-data-fetching expo Configures data fetching, caching, and screen states in Expo apps. Guides network calls with expo/fetch and TanStack Query. Claude Code CX Codex Cursor +1 27,200installs expo-examples expo Adapts official integration patterns from the expo/examples repository or scaffolds fresh projects with npx create-expo. Claude Code CX Codex Cursor +1 26,200installs

Similar

build-zoom-virtual-agent official anthropics Reference skill for Zoom Virtual Agent development: web embeds, mobile wrappers, knowledge-base sync and chat lifecycle. Use after routing to a virtual-agent workflow. Claude Code CX Codex Cursor +1 2,100installs build-zoom-meeting-sdk-app official anthropics Reference skill for embedding Zoom Meeting SDK across web and mobile applications. Guides client embeds and backend auth flows. Claude Code CX Codex Cursor +1 2,100installs argent-tv-interact software-mansion Controls and inspects TV apps on Apple TV, Android TV, and Fire TV via argent. It inspects UI focus, executes D-pad remote navigation, inputs text, and captures screen images. Claude Code CX Codex Cursor +1 20,800installs react-native-testing callstack Skill for writing and reviewing React Native component tests with Testing Library. Covers queries, user interactions, async patterns, and supports v13 (React 18) and v14 (React 19+). Claude Code CX Codex Cursor +1 5,300installs vercel-react-native-skills vercel A rules pack for React Native and Expo work: lists, animations, navigation, native modules. Load it so your agent makes mobile changes the same way every time. Claude Code CX Codex Cursor +1 253,900installs animate-expo emilkowalski Builds React Native and Expo animations using Reanimated and Gesture Handler. Helps keep motion on the UI thread and avoid dropped frames on physical devices. Claude Code CX Codex Cursor +1 135,900installs mobile-native emilkowalski Strips the tells that give a web app away on a phone: sticky hover, tap highlight flash, the 100vh bug. Claude Code CX Codex Cursor +1 84,500installs aso coreyhaines31 Audits App Store and Google Play listings against store optimization standards. Helps uncover gaps in metadata, visual assets, and conversion. Claude Code CX Codex Cursor +1 74,900installs

Questions about eas-app-stores

How do I install eas-app-stores in Claude Code?

Run npx skills add expo/skills --skill eas-app-stores -a claude-code. The skill will appear in ~/.claude/skills/eas-app-stores/SKILL.md.

What does eas-app-stores do?

The skill helps you build and submit iOS and Android apps to App Store, TestFlight, or Google Play. It supports Expo, React Native, and native apps, and handles versioning, signing, and store metadata.

What are the requirements for this skill?

You need EAS CLI (npm install -g eas-cli), Apple Developer and Google Play accounts (paid separately), and access to EAS cloud resources. For native iOS, check SwiftUI/UIKit compatibility in the guide.

Source text

SKILL.md · MIT
---
name: eas-app-stores
description: Build and submit iOS and Android apps with EAS to TestFlight, the App Store, or Google Play. Supports Expo and other React Native projects, plus existing native apps. Use for eas.json setup, release pipelines, signing, app versions and build numbers, store submissions, and listing metadata. For Expo websites and API routes, use eas-hosting; for adding React Native screens to a native app, use expo-brownfield.
version: 1.1.0
license: MIT
---

# App Store Deployment

> **EAS service - costs apply.** Cloud builds use EAS plan resources, and EAS services have free-tier and paid-plan limits. Apple Developer and Google Play memberships are separate. Check https://expo.dev/pricing for the requested service.

This skill covers building and releasing iOS and Android apps with EAS: Expo and other React Native projects, plus existing native apps. EAS is a delivery service; native apps can use it without adding Expo or React Native to their runtime. The native setup walkthrough currently covers SwiftUI/UIKit on iOS.

## Choose the project path

- **SwiftUI/UIKit app with no React Native runtime:** read [references/native-ios.md](references/native-ios.md) before changing its build configuration. Keep the Xcode project and Swift code as the app's source of truth. The Expo/React Native quick-start and development-client examples below do not apply to this path.
- **Native Android app with no React Native runtime:** preserve its existing native build setup. See [references/play-store.md](references/play-store.md) for submission; the Swift/iOS setup instructions do not apply. A dedicated native Android setup walkthrough is not yet included.
- **Expo/React Native app:** use the quick-start below, then the relevant store reference.
- **Adding React Native screens to an existing native app:** use `expo-brownfield` for that integration; return here for distribution.

Use the archive and icon checks in [references/native-ios.md](references/native-ios.md) during initial native iOS setup, after changing versioning, bundle IDs, or icons, or when diagnosing a rejected upload. Routine releases follow the EAS build/submit flow and the processing and availability checks in [references/testflight.md](references/testflight.md). A successful EAS build or a queued submission does not establish Apple acceptance, tester access, or an App Store release.

## References

Consult these resources as needed:

- ./references/workflows.md -- CI/CD workflows for automated store releases and PR previews
- ./references/testflight.md -- Submitting iOS builds to TestFlight for beta testing
- ./references/app-store-metadata.md -- Managing App Store metadata and ASO optimization
- ./references/play-store.md -- Submitting Android builds to Google Play Store
- ./references/ios-app-store.md -- iOS App Store submission and review process
- ./references/native-ios.md -- Native Swift/SwiftUI/UIKit setup, versioning, and archive verification without an Expo runtime

## Expo / React Native Quick Start

### Install EAS CLI

```bash
npm install -g eas-cli
eas login
```

### Initialize EAS

```bash
npx eas-cli@latest init
```

`eas init` links or creates the EAS project. Run `eas build:configure` to create build profiles in `eas.json`; preserve existing project and store identifiers when a release setup already exists.

## Build Commands

### Production Builds

```bash
# iOS App Store build
npx eas-cli@latest build -p ios --profile production

# Android Play Store build
npx eas-cli@latest build -p android --profile production

# Both platforms
npx eas-cli@latest build --profile production
```

### Submit to Stores

```bash
# iOS: Build and submit to App Store Connect
npx eas-cli@latest build -p ios --profile production --auto-submit

# Android: Build and submit to Play Store
npx eas-cli@latest build -p android --profile production --auto-submit

# Expo / React Native shortcut for iOS TestFlight
npx testflight
```

## Web & API Route Hosting

Deploying an Expo website or Expo Router API routes to EAS Hosting (`npx expo export -p web` then `eas deploy`) is covered by the `eas-hosting` skill. This skill focuses on native app store releases.

## EAS Configuration

Example for an Expo / React Native project (native Swift profiles are in `references/native-ios.md`):

```json
{
  "cli": {
    "version": ">= 16.0.1",
    "appVersionSource": "remote"
  },
  "build": {
    "production": {
      "autoIncrement": true,
      "ios": {
        "resourceClass": "m-medium"
      }
    },
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    }
  },
  "submit": {
    "production": {
      "ios": {
        "appleId": "[email protected]",
        "ascAppId": "1234567890"
      },
      "android": {
        "serviceAccountKeyPath": "./google-service-account.json",
        "track": "internal"
      }
    }
  }
}
```

## Platform-Specific Guides

### iOS

- For native Swift apps, use the explicit build/submit flow in `references/native-ios.md`
- For Expo / React Native apps, `npx testflight` provides a quick TestFlight flow
- Configure Apple credentials via `eas credentials`
- See ./references/testflight.md for credential setup
- See ./references/ios-app-store.md for App Store submission

### Android

- Set up Google Play Console service account
- Configure tracks: internal → closed → open → production
- See ./references/play-store.md for detailed setup

## Automated Releases

EAS Workflows automate the build → submit → update pipeline for CI/CD. See ./references/workflows.md for store-release examples. To author or validate workflow YAML, use the `eas-workflows` skill - it works from the live workflow schema.

## Version Management

EAS manages version numbers automatically with `appVersionSource: "remote"`:

```bash
# Check current versions
eas build:version:get

# Manually set version
eas build:version:set -p ios
```

The version-set command prompts for the value. When setting up or changing native iOS versioning, or diagnosing a duplicate build number, inspect the archived `CFBundleVersion`: the remote counter alone does not prove that Xcode used it.

## Monitoring

```bash
# List recent builds
eas build:list

# Check build status
eas build:view BUILD_ID

# Inspect submissions (verified with EAS CLI 23.2.0)
eas submit:list -p ios --json
eas submit:view SUBMISSION_ID --json
```

Check the CLI version before interpreting a missing command: these submission commands are available in 23.2.0 but not in the tested 18.6.0 installation. A pinned `npx [email protected]` invocation can use them without changing the global installation. See `references/testflight.md` for live Apple status and retry guidance. Follow the returned log URLs when the JSON result omits the underlying failure. Report the exact build ID/version and the furthest verified release state.

## Submitting Feedback
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
```bash
npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-app-stores" "<actionable feedback>"
```
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
If an agent repeatedly fails at an Expo task or the user has to step in, submit a brief report of the task, expected result, and what went wrong using `--category evals` and the relevant Expo package or command as `--subject`.

© expo · MIT · expo/skills

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor