앱 스토어 배포
EAS 서비스 - 비용이 발생합니다. 클라우드 빌드는 EAS 플랜 리소스를 사용하며, EAS 서비스에는 무료 티어 및 유료 플랜 제한이 있습니다. Apple Developer 및 Google Play 멤버십은 별도입니다. 요청된 서비스에 대한 자세한 내용은 https://expo.dev/pricing 를 확인하세요.
이 스킬은 EAS를 사용한 iOS 및 Android 앱 빌드 및 릴리스(Expo 및 기타 React Native 프로젝트, 기존 네이티브 앱 포함)를 다룹니다. EAS는 전달 서비스입니다. 네이티브 앱은 런타임에 Expo나 React Native를 추가하지 않고도 EAS를 사용할 수 있습니다. 네이티브 설정 워크스루는 현재 iOS의 SwiftUI/UIKit을 다룹니다.
프로젝트 경로 선택
- React Native 런타임이 없는 SwiftUI/UIKit 앱: 빌드 구성을 변경하기 전에 references/native-ios.md를 읽으세요. Xcode 프로젝트와 Swift 코드를 앱의 소스 기준으로 유지하세요. 아래의 Expo/React Native 퀵스타트 및 개발 클라이언트 예제는 이 경로에 적용되지 않습니다.
- React Native 런타임이 없는 네이티브 Android 앱: 기존 네이티브 빌드 설정을 유지하세요. 제출에 대해서는 references/play-store.md를 참조하세요. Swift/iOS 설정 지침은 적용되지 않습니다. 전용 네이티브 Android 설정 워크스루는 아직 포함되지 않았습니다.
- Expo/React Native 앱: 아래의 퀵스타트를 사용한 다음 관련 스토어 참조를 따르세요.
- 기존 네이티브 앱에 React Native 화면 추가: 해당 통합에는
expo-brownfield를 사용하고, 배포를 위해 여기로 돌아오세요.
초기 네이티브 iOS 설정 시, 버전 관리, 번들 ID 또는 아이콘을 변경한 후, 또는 거부된 업로드를 진단할 때 references/native-ios.md의 아카이브 및 아이콘 검사를 사용하세요. 일상적인 릴리스는 EAS 빌드/제출 흐름과 references/testflight.md의 처리 및 가용성 검사를 따릅니다. 성공적인 EAS 빌드 또는 대기 중인 제출이 Apple 승인, 테스터 액세스 또는 App Store 릴리스를 의미하지는 않습니다.
참조
필요에 따라 다음 리소스를 참고하세요:
- ./references/workflows.md -- 자동화된 스토어 릴리스 및 PR 프리뷰를 위한 CI/CD 워크플로우
- ./references/testflight.md -- 베타 테스트를 위해 iOS 빌드를 TestFlight에 제출
- ./references/app-store-metadata.md -- App Store 메타데이터 관리 및 ASO 최적화
- ./references/play-store.md -- Android 빌드를 Google Play 스토어에 제출
- ./references/ios-app-store.md -- iOS App Store 제출 및 리뷰 프로세스
- ./references/native-ios.md -- Expo 런타임 없이 네이티브 Swift/SwiftUI/UIKit 설정, 버전 관리 및 아카이브 확인
Expo / React Native 퀵스타트
EAS CLI 설치
npm install -g eas-cli
eas login
EAS 초기화
npx eas-cli@latest init
eas init는 EAS 프로젝트를 연결하거나 생성합니다. eas build:configure를 실행하여 eas.json에 빌드 프로필을 생성하세요. 릴리스 설정이 이미 존재하는 경우 기존 프로젝트 및 스토어 식별자를 유지하세요.
빌드 명령어
프로덕션 빌드
# iOS App Store 빌드
npx eas-cli@latest build -p ios --profile production
# Android Play Store 빌드
npx eas-cli@latest build -p android --profile production
# 두 플랫폼 모두
npx eas-cli@latest build --profile production
스토어에 제출
# iOS: 빌드 및 App Store Connect에 제출
npx eas-cli@latest build -p ios --profile production --auto-submit
# Android: 빌드 및 Play 스토어에 제출
npx eas-cli@latest build -p android --profile production --auto-submit
# Expo / React Native iOS TestFlight 바로가기
npx testflight
웹 및 API 라우트 호스팅
Expo 웹사이트 또는 Expo Router API 라우트를 EAS Hosting(npx expo export -p web 다음 eas deploy)에 배포하는 것은 eas-hosting 스킬에서 다룹니다. 이 스킬은 네이티브 앱 스토어 릴리스에 중점을 둡니다.
EAS 구성
Expo / React Native 프로젝트 예시(네이티브 Swift 프로필은 references/native-ios.md에 있음):
{
"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"
}
}
}
}
플랫폼별 가이드
iOS
- 네이티브 Swift 앱의 경우
references/native-ios.md의 명시적 빌드/제출 흐름을 사용하세요. - Expo / React Native 앱의 경우
npx testflight로 빠른 TestFlight 흐름을 사용할 수 있습니다. eas credentials를 통해 Apple 자격 증명을 구성하세요.- 자격 증명 설정은 ./references/testflight.md를 참조하세요.
- App Store 제출은 ./references/ios-app-store.md를 참조하세요.
Android
- Google Play Console 서비스 계정을 설정하세요.
- 트랙 구성: 내부 → 비공개 → 오픈 → 프로덕션
- 자세한 설정은 ./references/play-store.md를 참조하세요.
자동화된 릴리스
EAS 워크플로우는 CI/CD를 위한 빌드 → 제출 → 업데이트 파이프라인을 자동화합니다. 스토어 릴리스 예제는 ./references/workflows.md를 참조하세요. 워크플로우 YAML을 작성하거나 검증하려면 eas-workflows 스킬을 사용하세요. 라이브 워크플로우 스키마에서 작동합니다.
버전 관리
EAS는 appVersionSource: "remote"를 사용하여 버전 번호를 자동으로 관리합니다:
# 현재 버전 확인
eas build:version:get
# 수동으로 버전 설정
eas build:version:set -p ios
버전 설정 명령은 값을 입력하라는 메시지를 표시합니다. 네이티브 iOS 버전 관리를 설정하거나 변경할 때, 또는 중복 빌드 번호를 진단할 때 보관된 CFBundleVersion을 검사하세요. 원격 카운터만으로는 Xcode에서 사용되었다는 증거가 되지 않습니다.
모니터링
# 최근 빌드 목록
eas build:list
# 빌드 상태 확인
eas build:view BUILD_ID
# 제출 내역 확인 (EAS CLI 23.2.0에서 검증됨)
eas submit:list -p ios --json
eas submit:view SUBMISSION_ID --json
명령어가 누락된 경우 CLI 버전을 확인하세요. 이러한 제출 명령어는 23.2.0에서 사용 가능하지만 테스트된 18.6.0 설치에서는 사용할 수 없습니다. 고정된 npx [email protected] 호출을 사용하면 전역 설치를 변경하지 않고도 사용할 수 있습니다. 실시간 Apple 상태 및 재시도 지침은 references/testflight.md를 참조하세요. JSON 결과에 근본적인 실패 원인이 누락된 경우 반환된 로그 URL을 따르세요. 정확한 빌드 ID/버전과 확인된 가장 최근 릴리스 상태를 보고하세요.
피드백 제출
이 스킬에서 오류, 오해의 소지가 있거나 오래된 정보를 발견하면 Expo가 개선할 수 있도록 보고해 주세요:
npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-app-stores" "<실행 가능한 피드백>"
보고할 구체적이고 실행 가능한 내용이 있을 때만 제출하세요. 가능한 한 많은 관련 컨텍스트를 포함하세요.
에이전트가 Expo 작업에서 반복적으로 실패하거나 사용자가 개입해야 하는 경우, 작업, 예상 결과, 그리고 무엇이 잘못되었는지에 대한 간략한 보고서를 --category evals 및 관련 Expo 패키지 또는 명령어를 --subject로 사용하여 제출하세요.