앱 출시
Cocode IDE 로 만든 앱을 스토어에 올리는 절차를 준비물 · 단계 · 확인 순서로 정리합니다. 스토어 정책은 자주 바뀌므로 공식 문서 출처와 확인일을 함께 적습니다.
목차
이 섹션은 Flutter 앱을 App Store · Mac App Store · Google Play · Microsoft Store 에 올리는 일반 절차를 안내합니다. Cocode IDE 로 만든 프로젝트도 Flutter 프로젝트라 같은 절차를 따릅니다. 다만 프로젝트에 플랫폼 폴더가 있는지, 서명과 버전 설정을 CI 가 대신하는지는 프로젝트마다 다를 수 있으니 프로젝트의 README 와 CI 설정을 확인하세요. 스토어 밖에서 앱을 배포하는 방법(웹 · 설치 파일 직접 배포)은 이 가이드의 범위가 아닙니다.
주의
스토어 정책은 자주 바뀝니다. 모든 페이지 머리에 「마지막 확인」 날짜가, 끝에 「출처」 목록이 있습니다. 가입 요건 · 비용 · 심사 기간처럼 쉽게 바뀌는 값은 날짜와 함께 적었고, 이 가이드와 공식 문서가 다르면 공식 문서가 우선입니다.
스토어 한눈에 비교
(2026-10-08 확인)
| 항목 | App Store (iOS · iPadOS) | Mac App Store (macOS) | Google Play (Android) | Microsoft Store (Windows) |
|---|---|---|---|---|
| 계정 | Apple Developer Program — 개인 또는 조직 | App Store 와 같은 계정 | Play Console — 개인 또는 조직 | 파트너 센터 — 개인 또는 회사 |
| 비용 | 연 99 USD(현지 통화로 표시) | App Store 와 같음 | 1회 25 USD | 신규 가입 무료 |
| 서명 · 산출물 | Xcode 자동 서명이 기본, flutter build ipa 로 .ipa 생성 |
App Sandbox 필수. flutter build macos 후 Xcode 에서 보관(Archive) · 검증 · 배포(수동 서명은 Apple Distribution(인증서 목록에는 Mac App Distribution 도 있음) · Mac Installer Distribution 인증서) |
앱 번들 .aab 를 업로드 키로 서명, 사용자 기기에는 Play 앱 서명 키로 서명한 앱이 배포 |
MSIX 패키지 — 스토어가 인증 뒤 Microsoft 인증서로 다시 서명 |
| 업로드 방법 | Xcode · Transporter(.ipa) · altool |
Xcode · Transporter(.pkg) · altool |
Play Console 에서 번들 업로드 | 파트너 센터 새 제출의 패키지(Packages)에 업로드 |
| 심사 · 인증 | App Review — 제출의 최소 50% 를 24시간 안에, 90% 를 48시간 안에 심사 | App Store 와 같음 | 정책 검토 — 일부 계정(신규 계정 포함)은 최대 7일, 예외적으로 더 길게. 신규 개인 계정은 비공개 테스트(12명 · 14일) 후 프로덕션 신청 | 인증 — 영업일 기준 최대 3일 |
| 출시 방식 | 수동 · 심사 후 자동 · 지정한 날짜 이후 자동 중 선택, 업데이트는 7일 단계적 출시 가능 | App Store 와 같음 | 내부 → 비공개 → 공개 테스트 → 프로덕션 트랙, 업데이트는 단계적 출시와 관리형 게시 가능 | 인증 통과 즉시(기본) · 날짜 지정 · 수동 게시, 업데이트는 점진적 출시(MSIX) |
참고
한 스토어를 먼저 고르면 됩니다. Apple 계정 하나로 App Store 와 Mac App Store 에 모두 올릴 수 있습니다. 위 표의 수치는 스토어가 공식 문서에 적은 값이고 보장이 아닙니다. 일정은 여유 있게 잡으세요.
전체 흐름
공통 준비 → 앱 등록 → 릴리스 빌드와 서명 → 업로드와 시험 → 심사 제출 → 심사 · 인증 → 출시 → 운영
- 공통 준비 — 개발자 계정 → 식별자와 버전 → 아이콘 · 스플래시 · 스크린샷 → 개인정보와 권한. 계정은 서류 확인과 신규 개인 Play 계정의 테스트 기간 때문에 가장 오래 걸릴 수 있으니 먼저 시작하세요.
- 스토어에 앱 등록 — App Store Connect 에서 앱 레코드를 만들고, Play Console 에서 앱을 만들고, 파트너 센터에서 앱 이름을 예약합니다. 식별자가 여기서 스토어에 기록됩니다.
- 릴리스 빌드와 서명 —
flutter build ipa·flutter build macos·flutter build appbundle·dart run msix:create --store처럼 스토어에 올릴 산출물을 만들고 서명합니다. - 업로드와 시험 — 산출물을 올리고 TestFlight · Play 의 내부 · 비공개 테스트 같은 시험 배포로 먼저 확인합니다. Windows 는 올리기 전에 Windows 앱 인증 키트로 로컬에서 검사합니다.
- 심사 제출 — 스토어 등록정보와 심사 정보를 채우고 제출 전 체크리스트로 점검한 뒤 제출합니다.
- 심사 · 인증 — 스토어가 앱을 검토합니다. 거절되면 사유를 고쳐 다시 제출합니다.
- 출시 — 승인된 앱을 스토어 정책이 허용하는 방식(수동 · 자동 · 날짜 지정 · 단계적)으로 공개합니다.
- 출시 후 운영 — 업데이트를 올리고 거절에 대응합니다. 출시 후 운영에서 다룹니다.
2~7 단계는 스토어마다 화면과 용어가 다릅니다. 스토어별 안내에서 스토어별로 이어 가세요.
어디서부터 읽을까
| 지금 상황 | 먼저 읽을 곳 |
|---|---|
| 아직 개발자 계정이 없습니다 | 개발자 계정 |
| 앱 이름과 식별자 · 버전 번호를 정하는 중입니다 | 식별자와 버전 |
| 스토어 등록정보에 올릴 이미지를 준비합니다 | 아이콘 · 스플래시 · 스크린샷 |
| 개인정보 입력 항목이나 권한 문구가 막막합니다 | 개인정보와 권한 |
| 곧 제출합니다 | 제출 전 체크리스트 |
| 스토어별 앱 등록 · 업로드 · 제출 절차가 궁금합니다 | 스토어별 안내 |
| 이미 출시했고 업데이트하려고 합니다 | 출시 후 운영 |
- 공통 준비스토어마다 달라지는 절차에 들어가기 전에 한 번만 해 두면 되는 준비 — 계정 · 식별자와 버전 · 아이콘과 스크린샷 · 개인정보 · 제출 전 점검.
- 스토어별 안내앱 등록 · 빌드 업로드 · 심사 제출 · 출시처럼 스토어마다 다른 절차를 스토어별로 한 편씩 안내합니다.
- 출시 후 운영업데이트 배포와 심사 거절 대응 — 첫 출시 뒤에 되풀이하는 일을 다룹니다.
출처
- developer.apple.com/programs/enroll
- developer.apple.com/programs/whats-included
- developer.apple.com/distribute/app-review
- developer.apple.com/help/app-store-connect/manage-builds/upload-builds
- developer.apple.com/help/app-store-connect/manage-your-apps-availability/select-an-app-store-version-release-option
- developer.apple.com/help/app-store-connect/update-your-app/release-a-version-update-in-phases
- developer.apple.com/macos/distribution
- developer.apple.com/help/account/certificates/certificates-overview
- support.google.com/googleplay/android-developer/answer/6112435
- support.google.com/googleplay/android-developer/answer/14151465
- support.google.com/googleplay/android-developer/answer/9859751
- support.google.com/googleplay/android-developer/answer/9859348
- support.google.com/googleplay/android-developer/answer/6346149
- support.google.com/googleplay/android-developer/answer/9859654
- learn.microsoft.com/en-us/windows/apps/publish/partner-center/open-a-developer-account
- learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/app-package-requirements
- learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/app-certification-process
- learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/manage-submission-options
- learn.microsoft.com/en-us/windows/apps/publish/gradual-package-rollout
- docs.flutter.dev/deployment/ios
- docs.flutter.dev/deployment/macos
- docs.flutter.dev/deployment/android
- docs.flutter.dev/deployment/windows
- help.apple.com/itc/transporteruserguide/en.lproj/static.html
- pub.dev/packages/msix