많은 인디 개발자와 외주 팀의 주력 PC는 Windows이지만, App Store 출시 경로는 여전히 Apple 생태계를 거칩니다. 코드 서명, Archive, .ipa 업로드, TestFlight 배포, 심사 제출은 모두 macOS 도구에 의존합니다. 책상마다 Mac을 둘 필요는 없습니다. 2026년 현실적인 분담은 Windows에서 일상 개발과 App Store Connect 운영, 클라우드 Mac에서 서명과 릴리스입니다. 이 글은 타임라인별로 Windows에서 가능한 일과 Mac이 필수인 일을 나누고, 팀이 재사용할 체크리스트를 제공합니다.
핵심: 스토어 운영은 Windows, 서명·업로드는 Mac
iOS 출시를 두 범주로 나누면 경계가 분명해집니다. 스토어 작업—계정, 메타데이터, 가격, 심사 소통—은 대부분 브라우저에서 합니다. 빌드 작업—인증서, Keychain, Archive, codesign—은 macOS가 필요합니다. 아래 표는 Windows 팀이 릴리스 런북 옆에 붙여 두는 기준표입니다.
| 단계 | Windows 가능? | 설명 |
|---|---|---|
| Apple Developer Program 가입 | 가능 | 브라우저만; Apple ID와 신원/기업 확인 |
| App Store Connect 메타데이터, 스크린샷, 가격 | 가능 | 순수 웹 콘솔; Windows 브라우저로 충분 |
| 코딩, Git, 크로스플랫폼 빌드 | 대부분 가능 | Flutter/RN/KMP는 Windows; iOS 최종 빌드는 Mac |
| 인증서, Provisioning Profile, Keychain | 불가 | macOS Keychain과 Xcode 서명 도구 필요 |
| Archive, codesign, .ipa 생성 | 불가 | xcodebuild, Xcode Organizer는 macOS 전용 |
| TestFlight / App Store 업로드 | 간접 가능 | Transporter는 macOS; fastlane은 클라우드 Mac이 일반적 |
| 심사 소통, 출시, 판매 보고 | 가능 | App Store Connect 브라우저 |
여섯 단계 로드맵: 0에서 App Store까지
네이티브 Swift든 Flutter, React Native든 메인 릴리스 경로는 같습니다. 시간순 단계와 권장 환경을 표시했습니다. «Windows는 어디까지?»라는 질문에 대한 온보딩 지도입니다.
- Apple Developer Program 가입 (개인 $99/년 또는 Organization—Apple 공식 가격 확인)
- App Store Connect에서 App 레코드 생성: Bundle ID, 이름, 주 언어, SKU
- 서명 구성: Distribution 인증서 + App Store Provisioning Profile
- Archive 및 빌드 업로드: Xcode Organizer 또는
fastlane gym + pilot/deliver - TestFlight 내부/외부 테스트: 크래시, 권한, 로그인, 결제 등 핵심 경로
- App Review 제출 및 출시: 심사 메모, 수출 규정, 프라이버시 라벨; 승인 후 지역 선택
1·2·5(테스터 관리)·6(메타데이터, 심사 답변) 단계에서 Windows 팀이 달력 시간을 가장 많이 씁니다. 3·4는 벽시계는 짧지만 기술 리스크가 큽니다—첫 하드 데드라인 전에 클라우드 Mac 세션을 잡고, 제출 전날에 맡기지 마세요.
1단계: Apple Developer와 App Store Connect (Windows 브라우저)
Apple Developer Program에서 Apple ID로 등록. 개인은 신원 확인, 기업은 D-U-N-S 등이 필요합니다. 심사 기간은 지역별—빌드 완성을 기다리지 말고 일찍 신청.
활성화 후 App Store Connect «내 App»에서 +로 새 App. Certificates, Identifiers & Profiles에서 Bundle Identifier를 먼저 등록하고 Xcode PRODUCT_BUNDLE_IDENTIFIER와 일치시킵니다.
다음은 모두 Windows에서 가능:
- App 이름, 부제, 설명, 키워드, 지원 URL, 개인정보 처리방침 링크
- 필수 크기 스크린샷·미리보기 동영상 (Figma, Photoshop 등)
- 가격, 판매 지역, 인앱 구매, 구독
- App 프라이버시(Privacy Nutrition Labels) 및 데이터 수집 선언
- TestFlight 테스터, 심사용 데모 계정
많은 팀이 메타데이터 공수를 과소평가합니다. 스토어 카피, 현지화, 기기별 스크린샷은 개발과 병행—Mac 불필요. Connect 작업도 QA처럼 달력 시간을 확보하세요.
2단계: 인증서, 프로파일, 서명 (Mac 필수)
Windows 전용 팀이 가장 막히는 구간입니다. Distribution 개인키는 macOS Keychain에 있고, Provisioning Profile은 App ID·Capabilities(푸시, Sign in with Apple, App Groups 등)에 묶입니다. Xcode Signing & Capabilities가 보통 가장 수월합니다.
권장 방법
- 클라우드 Mac 또는 공유 Mac에서 Xcode → Settings → Accounts, Automatic Signing 또는 수동 Distribution 인증서
- .p12 + 프로파일 내보내기 전 키 관리 규칙 합의—개인키 유출은 타인 명의 릴리스로 이어짐
- CI: App Store Connect API Key(.p8) + fastlane; 키는 프로덕션 시크릿급 보관
- 어떤 Apple ID가 Distribution 인증서를 갖고, 어떤 머신이 Keychain 항목을 보유하는지 문서화
다지역 팀의 단일 서명원: iOS 서명·Provisioning Profile 거버넌스 FAQ. Windows는 이 단계를대체 불가—macOS Keychain 없이 compliant codesign 환경 없음.
외주에서 넘겨받은 프로젝트는 첫 Archive 전 서명 ID 확인. Team ID 불일치, 만료 프로파일, 포털·프로젝트 Capability 불일치가 첫 업로드 실패 상위 3가지.
3단계: Archive, 업로드, TestFlight
Simulator에서 문제없으면 릴리스 빌드는 Release + Generic iOS Device / Any iOS Device로 Archive. 주요 업로드 경로 세 가지:
| 방식 | 적합 대상 | 비고 |
|---|---|---|
| Xcode Organizer → Distribute App | 첫 출시, GUI 트러블슈팅 | 클라우드 Mac VNC; Windows는 원격 관찰 |
fastlane gym + pilot | CI 경험 팀 | 스크립트화·반복 가능, 고정 릴리스 주기 |
| Transporter (macOS) | .ipa 보유, Xcode 불필요 | 드래그 앤 드롭; 외주 인도물 |
업로드 성공 후 App Store Connect → TestFlight에 빌드 표시. 처리는 수분~수시간. 첫 업로드는 수출 규정 누락, 암호화 선언, dSYM 미동기가 흔함—대부분 Connect 폼으로 해결, 재빌드 불필요.
TestFlight 최소: 콜드 스타트, 로그인/가입, 핵심 유료 플로우, 푸시·deep link, 여러 iOS 버전·화면 크기. StoreKit·지역 가격은 App Store 지역 샌드박스 FAQ.
빌드 번호(CFBundleVersion)와 업로드 타임스탬프 기록. Apple ITMS 메일 시 정확한 빌드 매칭으로 Windows·클라우드 Mac 간 추측 시간 절약.
4단계: 심사 제출 및 공개
TestFlight 통과 후 빌드 선택, App 심사 정보 입력:
- 연락처 이름·전화 (심사팀 전화 가능)
- 데모 계정 ID·비밀번호 (로그인 필요 시)
- 심사 메모: 기능 플래그, 테스트 단계, 특수 하드웨어
- 콘텐츠 권리, 연령 등급, 행정 신고 (사업·지역별)
«심사에 제출» → Waiting for Review → In Review. 거절 시 Resolution Center에 Guideline; Windows 브라우저에서 메타데이터 수정, 새 빌드 또는 설명만 회신. 승인 후 수동/자동 출시로 국가·지역 선택.
흔한 거절: 크래시·플레이스홀더, 개인정보 처리방침 누락, Info.plist Usage Description 불명확, Guideline 4.3 유사 앱, IAP·구독 설명 불일치. 개발 OS와 무관한 경우 많음—첫 Archive 전 Info.plist·Capability는 Mac/Xcode에서 정확히.
PM이 Connect에 붙일 짧은 «심사 패킷»: 데모 자격, 플래그 상태, 3단계 happy path. 심사관도 사람—명확함이 마케팅 문구보다 낫습니다.
Windows 주력 팀 권장 워크플로
많은 팀이 검증한 분담:
- Windows: VS Code / Cursor, Git PR, App Store Connect, 심사 이메일
- 클라우드 Mac: 동일 Git,
pod install/ SPM, Archive, fastlane, Signing 오류는 VNC GUI - 연결: SSH 스크립트, VNC GUI; 산출물은 Git/객체 스토리지—OS 간 수동 복사 지양
- 릴리스 윈도: 클라우드 Mac 일 단위—릴리스 주만 가동. 개발자당 유휴 Mac보다 경제적
Archive → TestFlight 단계 checklist는 Windows 원격 Xcode 빌드·서명·TestFlight 전체 FAQ와 대조. SSH, xcodebuild 플래그, 첫 업로드 오류 코드 일원화.
경계: CI만으로 부족할 때
GitHub Actions 등 macOS Runner는 무인 빌드에 적합. 다음은 대화형 클라우드 Mac 유지:
- 처음 Xcode Capability 체크, Provisioning 불일치 수정
- Organizer ITMS 오류와 Xcode 로그·Apple 메일 대조
- 새 Simulator runtime, Swift Package 인덱스 이상
- 당일 거절로 Archive 재생성·재업로드
CI는 반복성, 사람은 포털·Keychain 돌발. 둘 다 예산—택일 아님.
출시 전 체크리스트 (인쇄용)
- Apple Developer Program 활성, Bundle ID 등록
- App Store Connect App 생성, 개인정보 처리방침 URL 접근 가능
- Distribution 인증서·App Store Profile 유효, Capabilities 프로젝트 일치
- Archive Release 구성, 버전(
CFBundleShortVersionString/CFBundleVersion) 증분 규칙 준수 - TestFlight 업로드, 수출 규정·암호화 선언 완료
- 스크린샷, 설명, 연령, 데모 계정, 심사 메모 준비
- 알려진 크래시·블로커 수정, dSYM 업로드(심볼화 필요 시)
릴리스 시즌 클라우드 Mac
연 몇 번 출시만을 위해 Mac 구매는 비효율적입니다. 일 단위 전용 Mac mini가 «릴리스 윈도»에 맞음: SSH/VNC, Xcode 버전 고정, Archive 후 종료. vpszap은 Apple Silicon 베어메탈, 다리전, 일 과금, 장기 약정 없음—«Windows 코딩, Mac 릴리스»와 궁합. vpszap 클라우드 Mac mini 알아보기, 본 deadline 전 Archive → TestFlight 전체로 지연·디스크 검증.