저는 이미 Expo 앱을 Google Play에 게시하는 과정을 거쳤습니다. 그 글을 읽으셨다면 Google Play와 App Store가 완전히 다른 존재라는 것을 아실 겁니다. Apple에는 자체 생태계, 도구, 심사 과정이 있고, 일을 까다롭게 만드는 고유한 방식도 있습니다.
이 글은 Apple Developer 계정 생성부터 “Submit for Review” 클릭까지, Expo 앱을 iOS App Store에 게시하는 단계별 가이드입니다. 시작 전에 알았더라면 좋았을 모든 것을 담았습니다.
사전 준비
시작하기 전에 다음을 준비하세요.
- 동작하는 Expo 프로젝트(managed 또는 bare 워크플로)
- Mac 또는 Mac 사용 환경. Apple은 iOS 앱을 네이티브로 빌드하려면 macOS를 요구하지만, EAS Build로 우회할 수도 있습니다.
- Xcode 설치(최신 안정 버전)
- Apple ID
❇️ 1단계: Apple Developer Program 등록
첫 번째 관문입니다. 한 번만 내는 Android의 25달러 수수료와 달리 Apple은 연간 99달러를 청구합니다.
- 다음 주소로 이동합니다: developer.apple.com
- “Account”를 클릭하고 Apple ID로 로그인합니다
- Apple Developer Program에 등록합니다
- 개인 또는 조직 정보를 입력합니다
- 99달러를 결제합니다
승인되면 이후 모든 작업의 두 가지 핵심 대시보드인 App Store Connect와 Apple Developer Portal에 접근할 수 있습니다.
❇️ 2단계: App Store Connect에서 앱 설정
App Store Connect는 앱 등록 정보, 빌드, 가격, 제출을 관리하는 곳입니다.
- 다음 주소로 이동합니다: appstoreconnect.apple.com
- “+” 버튼을 클릭한 다음 “New App”을 선택합니다.
- 앱 세부 정보를 입력합니다:
- 플랫폼: iOS
- 이름: 앱에 표시될 이름(신중히 선택하세요. 변경하기 어렵습니다)
- Bundle ID: Expo 설정의 값과 정확히 일치해야 합니다
- SKU: 고유한 내부 식별자
- “Create”를 클릭합니다.
이제 App Store Connect에 앱 레코드가 생성되었습니다. 아직 빌드는 없고 앱 컨테이너만 있는 상태입니다.
❇️ 3단계: iOS용 Expo 프로젝트 구성
app.json(또는 app.config.js)을 열고 iOS 섹션이 완전한지 확인합니다.
{
"expo": {
"name": "Your App Name",
"slug": "your-app-slug",
"version": "1.0.0",
"ios": {
"bundleIdentifier": "com.yourname.yourapp",
"buildNumber": "1",
"supportsTablet": true,
"infoPlist": {
"NSCameraUsageDescription": "We need camera access to...",
"NSPhotoLibraryUsageDescription": "We need photo access to..."
}
}
}
}꼭 다시 확인할 사항:
- bundleIdentifier는 App Store Connect에 등록된 값과 정확히 일치해야 합니다.
- 버전이 같더라도 업로드할 때마다 buildNumber를 올리세요.
- 앱이 사용하는 모든 권한을 명확한 설명과 함께 infoPlist에 추가하세요. 설명이 없거나 모호하면 Apple이 앱을 거부할 수 있습니다.
❇️ 4단계: 인증서와 프로비저닝 프로파일 처리
Apple이 Android와 가장 크게 다르고 많은 개발자가 몇 시간씩 허비하는 부분입니다. 두 가지가 필요합니다.
- Distribution Certificate: 빌드가 본인에게서 나왔음을 증명합니다
- Provisioning Profile: 앱의 Bundle ID를 인증서와 연결하고 배포를 승인합니다
옵션 A: EAS에 맡기기(권장)
EAS Build를 사용하면 이 모든 것을 자동으로 관리할 수 있습니다:
npx eas-cli credentialsEAS가 Apple 계정에 로그인하라고 안내한 뒤 모든 것을 생성하고 저장해 줍니다.
옵션 B: Xcode 또는 Apple Developer Portal에서 수동으로 진행
- Apple Developer Portal에서 Certificates, IDs & Profiles를 엽니다.
- 새 iOS Distribution Certificate를 만듭니다.
- Bundle Identifier와 일치하는 App ID를 만듭니다.
- 두 항목을 연결하는 Distribution Provisioning Profile을 만듭니다.
💡 배운 점: 가능하면 여러 개발자 인증서를 관리하지 마세요. Apple은 계정당 인증서 수를 제한하며, 인증서를 폐기하면 그 인증서를 사용하는 모든 프로비저닝 프로파일이 무효화됩니다.
❇️ 5단계: 앱 빌드
EAS Build 사용(권장)
npm install -g eas-cli
eas login
eas build:configure프로덕션용으로 eas.json을 구성합니다:
{
"build": {
"production": {
"ios": {
"distribution": "store"
}
}
}
}그런 다음 빌드를 시작합니다:
eas build --platform ios --profile productionEAS는 클라우드에서 앱을 빌드하고 코드 서명을 처리하며 업로드 준비가 된 .ipa 파일을 제공합니다. 이 단계에는 Mac이 필요 없습니다.
Xcode 사용(로컬 빌드)
npx expo run:ios --configuration Release또는 Xcode에서 ios/ 폴더를 열고 대상으로 “Any iOS Device”를 선택한 뒤 Product → Archive를 선택합니다.
❇️ 6단계: App Store Connect에 빌드 업로드
옵션 A: EAS Submit(가장 쉬움)
eas submit --platform ios --latest옵션 B: Transporter — Mac App Store에서 다운로드해 로그인하고 .ipa 파일을 추가한 뒤 “Deliver”를 클릭합니다.
옵션 C: Xcode Organizer — 아카이브한 후 Window → Organizer를 열어 아카이브를 찾고 Distribute App → App Store Connect → Upload를 선택합니다.
❇️ 7단계: TestFlight로 테스트
App Store에 제출하기 전에 항상 TestFlight로 테스트하세요.
- App Store Connect에서 TestFlight를 엽니다.
- 빌드 처리가 끝나면 내부 테스터(팀원 최대 100명)를 추가합니다.
- 외부 테스터의 경우 먼저 Beta App Review를 제출합니다(보통 1~2일 소요).
❇️ 8단계: App Store 등록 정보 준비
제출하기 전에 Apple은 다음 항목을 모두 요구합니다.
- 이름(최대 30자)과 부제(최대 30자)
- 카테고리(기본 및 선택적 보조)
- 개인정보 처리방침 URL(필수)
- 설명(최대 4,000자, 처음 몇 줄이 중요합니다)
- 키워드(쉼표로 구분, 총 100자 이내)
스크린샷 — Apple은 특정 크기를 요구합니다:
- iPhone 6.9인치(iPhone 16 Pro Max) — 필수
- iPhone 6.7인치(iPhone 14 Plus / 15 Plus) — 선택이지만 권장
- iPad Pro 13인치(M4) — 앱이 iPad를 지원하는 경우 필수
❇️ 9단계: 가격과 제공 지역 설정
- Pricing and Availability를 엽니다.
- 무료를 선택하거나 가격 등급을 설정합니다.
- 앱을 배포할 국가·지역을 선택합니다(기본값은 모든 지역).
- 제공 시작일을 설정합니다(선택 사항).
❇️ 10단계: 앱 개인정보 설문 작성
Apple은 데이터 처리 방식을 신고하도록 요구합니다. 이 정보는 App Store 페이지의 개인정보 보호 라벨이 됩니다. App Store Connect에서 App Privacy를 열고 어떤 데이터를 수집하는지, 사용자 신원과 연결되는지, 추적에 사용되는지를 솔직하게 답하세요.
❇️ 11단계: 심사 제출
Review Information에서 Apple 심사자에게 전달할 메모를 남기세요. 앱에 로그인이 필요하다면 여기에 테스트 자격 증명을 제공하세요. 그런 다음 Add for Review → Submit to App Review를 선택합니다.
❇️ 12단계: 출시!
승인되면 앱 상태가 “Ready for Sale”이 됩니다. 제출할 때 다음 옵션 중 하나를 선택합니다.
- 수동 출시: 앱이 공개되는 시점을 직접 제어합니다.
- 자동 출시: 승인되는 즉시 앱이 공개됩니다.
🎉 축하합니다. 앱이 App Store에 올라갔습니다.
❇️ 마무리
App Store 과정은 Google Play보다 불투명하지만, 첫 출시 이후의 릴리스는 훨씬 수월해집니다. 시간을 가장 많이 잡아먹는 부분은 다음과 같습니다.
- 인증서와 프로비저닝 — EAS에 맡기세요.
- 스크린샷 — 실제 디자인 시간을 따로 확보하세요.
- 첫 심사 — 1~3일을 예상하고 앱이 중단 없이 동작하는지 확인하세요.
Apple의 생태계는 학습 곡선이 더 가파르지만 App Store 사용자층은 가치가 크며, 일단 진입하면 높은 품질 기준이 오히려 유리하게 작용합니다. 성공적인 출시를 기원합니다! 🚀
이 글이 유용했다면 다음 글도 썼습니다: Expo 앱을 Google Play에 배포하기 — Android를 위한 같은 방식의 단계별 설명입니다. 제 앱은 다음에서도 찾을 수 있습니다: vladsiu.com.
