eas-app-stores
When to Use
- Use when this upstream workflow matches the user's stated goal.
- Use when the task requires the procedures documented in this skill.
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.
Authorization and artifact boundaries
Store uploads, metadata pushes, invitations, public releases, paid builds and OTA publications require the applicable user scope; drafting or inspection alone does not authorize them. Pin a reviewed CLI version and inspect upload archives/ignore rules for secrets before cloud builds. Never send project logs/feedback externally without explicit instruction; redact secrets and user data. Use exact build IDs, account/team and track; latest-selection shortcuts are unsuitable when multiple candidates exist. Current CLI/store schemas override historical examples and legacy statistics.
Choose the project path
- SwiftUI/UIKit app with no React Native runtime: read [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] 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-brownfieldfor that integration; return here for distribution.