Flutter 앱 배포 전체 체크리스트 (1인 개발자용)
단계 | 구분 | 해야 할 일 | 설명 | 비고 |
1 | 공통 | Firebase 콘솔 → “프로젝트 만들기” | App Distribution 테스트용 | |
2 | 공통 | “프로젝트 설정 → 내 앱” → 번들ID, 패키지명 입력 | App ID 복사해두기 | |
3 | 공통 | npm install -g firebase-tools → firebase login | 나중에 자동 배포 시 사용 | |
4 | Android | Play Console → $25 (1회) | 개인 계정 가능 | |
5 | Android | Play Console → “앱 만들기(Create App)” | 기본정보 + 정책 동의 | |
6 | Android | bash<br>keytool -genkey -v -keystore release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key | 비밀번호 메모 | |
7 | Android | /android/key.properties 파일에 경로/비번 저장 | build.gradle에 연결 필요 | |
8 | Android | flutter build appbundle --release | 결과: app-release.aab | |
9 | Android | bash<br>firebase appdistribution:distribute build/app/outputs/bundle/release/app-release.aab --app <앱ID> --groups testers | 테스터에게 이메일 발송됨 | |
10 | Android | “릴리스 만들기” → .aab 업로드 → “검토 및 게시” | 심사 1~3일 | |
11 | iOS | developer.apple.com/programs → $99/년 | 개인 Apple ID로 가능 | |
12 | iOS | Mac → Xcode → Settings > Accounts > + | “Automatic Signing” 켜기 | |
13 | iOS | App Store Connect → 새 앱 추가 | 번들ID 일치시켜야 함 | |
14 | iOS | flutter build ipa --release | 결과: build/ios/ipa/Runner.ipa | |
15 | iOS | Xcode → “Product > Archive > Distribute App” | 자동 TestFlight 업로드 | |
16 | iOS | “내부 테스터 추가” → 메일 발송 | 테스터 실기기 설치 가능 | |
17 | iOS | App Store Connect → “심사 제출” | 보통 1~3일 | |
18 | 공통 | pubspec.yaml의 version: 1.0.0+1 업데이트 | +1씩 증가시키기 | |
19 | 공통 | GitHub Actions + Firebase 업로드 | 월 $0~10 수준 | |
20 | 공통 | 스토어 공개 후 홍보 준비 |
필요한 계정/파일 요약
구분 | 항목 | 필요 시점 | 비고 |
Apple Developer | iOS 스토어 업로드 | 연 $99 | 가입 바로가기 |
Google Play Developer | Android 스토어 업로드 | 1회 $25 | 가입 바로가기 |
Firebase | 테스트 배포 | 무료 | 콘솔 |
Keystore 파일 | Android 빌드 | 1회 생성 | /android/app/release-key.jks |
Firebase CLI | 테스트 업로드 | 무료 | npm install -g firebase-tools |
추천 순서 (1인용 빠른 루트)
순서 | 할 일 | 소요 |
① Firebase 세팅 & CLI 로그인 | 10분 | |
② Google Play 계정 개설 + 앱 등록 | 30분 | |
③ Android 빌드 → Firebase 테스트 배포 | 20분 | |
④ Apple Developer 등록 + Xcode 자동서명 | 30분 | |
⑤ iOS 빌드 → TestFlight 업로드 | 30분 | |
⑥ 두 스토어 심사 요청 → 승인 | 1~3일 |
심사는 기다리면 끝이에요.