Xcode 프로젝트 설정
1. 기본 설정
출시하고자 하는 앱을 Xcode로 Open합니다.
Xcode에서 Runner > TARGETS > Runner로 이동하여 설정합니다.
- App Category: 앱 카테고리 선택
- Display Name: 앱 이름
- Bundle Identifier: 패키지명 (예: com.company.appname)

2. Signing & Capabilities
- Automatically manage signing 활성화 (안되어 있다면)
- Team에서 Developer Program 가입 계정 선택

3. + Capability 클릭 → In-App Purchase 추가

⚠️ 중요: In-App Purchase Capability를 추가하면 Xcode가 자동으로 Bundle ID를 생성합니다. (app store connect 에서도 생성 가능하나 이 방법으로 진행 시 동일함.)
하단에 아래처럼 In-App Purchase가 추가된다.

참고로 Capability를 등록하는 과정에서 Xcode가 자동으로 https://developer.apple.com/account/resources/identifiers/list 에 번들ID를 등록해준다. 참고로 Capabilities는 앱에 필요한것만 직접 선택하여 지정한다.
3. 앱 아이콘 설정
- 앱 아이콘으로 사용할 이미지를 192x192 사이즈로 준비한다. (배경이 없는 png 파일 추천)
- assets/ 안에 원하는 위치에 앱 아이콘을 위치시키며, pubspec.yaml에 flutter_launcher_icons 라이브러리를 추가한다.
Flutter 프로젝트에서 flutter_launcher_icons 라이브러리 사용
flutter_launcher_icons:
android: true
ios: true
image_path: "assets/app/icon/icon.png" # 최소 192x192
remove_alpha_ios: true
실행 명령어
flutter pub get
flutter pub run flutter_launcher_icons
위 명령어로 아이콘이 사이즈 별로 자동 생성 된다.
Xcode > Runner > Assets.xcassets > AppIcon에서 앱 아이콘이 잘 생성되었는지 확인할 수 있다.

4. 런치 스크린(스플래쉬 스크린) 설정
마찬가지로 flutter_native_splash 라는 라이브러리가 이미 있기에 편리하게 구현할 수 있다.
flutter_native_splash:
# 배경색 (필수)
color: "#DF6653" # 주황색 배경
# 로고 이미지 (선택)
image: "assets/app/icon/icon.png" # 중앙에 표시될 로고
# Android 12+ 설정 (선택)
android_12:
color: "#DF6653" # Android 12의 새로운 스플래시 API
image: "assets/app/icon/icon.png"
icon_background_color: "#DF6653" # 아이콘 배경색 (선택)
# 다크모드 이미지 (선택)
image_dark: "assets/app/icon/icon.png" # 다크모드용 이미지
color_dark: "#DF6653" # 다크모드 배경색 (선택)
# 전체 화면 모드 (선택)
fullscreen: true # 상태바, 네비게이션바 숨김
# 이미지 위치 설정
android_gravity: center # center, fill, bottom, top 등
ios_content_mode: center # center, scaleToFill, scaleAspectFit 등
아래 명령어로 스플래쉬 스크린 생성
# 패키지 설치
flutter pub get
# 스플래시 스크린 생성
dart run flutter_native_splash:create
# 또는 (Flutter 3.0 이전 버전)
flutter pub run flutter_native_splash:create
혹은 아래처럼 Xcode에서 삽입도 가능하다.
Xcode > Runner > LaunchScreen.storyboard에서:
- 런치 이미지를 Assets > LaunchImage에 추가 (1x, 2x, 3x)
- 배경색은 View > LaunchBackground에서 설정
앱 빌드 및 검증
1. 앱 빌드
터미널에서 실행
flutter build ipa
성공 시 다음 파일들이 생성됩니다.
- build/ios/archive/Runner.xcarchive
- .ipa 파일
2. 유효성 검사
- 생성된 .xcarchive 파일을 Xcode로 열기
- Validate App 클릭
- 검증 프로세스 진행
- 성공 메시지 확인
3. 앱 업로드
- Distribute App 클릭
- App Store Connect 선택
- 자동 업로드 진행
- 완료 후 약 30분 대기 (처리 시간)
앱스토어 커넥트 설정
1. 앱 생성
App Store Connect에서 새 앱 추가 (https://appstoreconnect.apple.com/apps)
- 이름: 앱 이름
- 기본 언어: 앱 타겟 언어에 따라 설정 (한국어, 영어 등)
- Bundle ID: Xcode에서 생성된 ID 선택
- SKU: 고유 식별자 (예: com.company.appname.ios)
2. 앱 정보 입력
기본 정보
- 이름: 앱 이름
- 부제: 앱 아이덴티티를 표현하는 짧은 문구
- 카테고리: 적절한 카테고리 선택
- 콘텐츠 권한: 편집을 클릭하여, 아래처럼 설정

- 연령 등급: 편집을 클릭하여 진행, 콘텐츠에 맞는 등급 설정


작성 후, 꼭 저장을 클릭
개인정보처리방침
신뢰 및 안전 > 앱이 수집하는 개인정보 > 시작하기 클릭하여 진행.
- 개인정보처리방침 URL 입력
- 데이터 수집 여부 명시
- 수집하는 데이터 유형 선택
다 설정했다면 게시를 클릭합니다.
3. 스크린샷 준비
필수 스크린샷 사이즈
- 6.9인치 (iPhone 16 Pro Max) - 필수
- 6.5인치 (iPhone 14 Plus) - 선택사항
- 13인치 (iPad) - 필수
💡 팁: 시뮬레이터에서 Cmd + S로 스크린샷 촬영으로 진행
4. 인앱 구매 상품 등록
- 수익화 > 앱 내 구입 메뉴 진입
- 앱 내 구입 페이지에서 생성 클릭
- 유형 및 제품 ID 설정 (삭제 시 재사용 불가)
- 제품 ID는 한번 상품을 삭제하면 재사용이 불가능함.
- com.company.appname.ios.remove_ads_2000 과 같이 고유하면서 바로 해석이 되게 입력.
- 해당 제품으로 진입.
- 가격 및 설명 입력.
- 스크린샷 및 심사 메모 첨부 (이걸 해야 멭메타데이터 누락됨 오류 안뜸)
스크린샷은 결제하는 UI를 직접 찍으면되고, 설명은 아래와 같이 상세해야 합니다.
1.Click the gear icon in the upper right corner of the main screen
2.Click Purchase Premium to see the payment screen.
5. 앱 정보 설정
1.0 제출 준비 중 페이지로 들어와서 스크린샷 및 프로모션 텍스트, 설명, 키워드, 지원 URL, 마케팅 URL, 버전, 저작권 등을 입력하며
마케팅 URL은 추후 AdMob 등록시 루트도메인이 되므로 실제 app-ads.txt를 올릴 도메인으로 설정한다.
빌드도 지정하여 추가해준다.
앱 내 구입에도 방금 생성한 광고제거 인앱 결제 아이템을 설정해준다.
5. 가격 설정
수익화 > 가격 및 사용 가능 여부
- 무료 앱도 가격 설정 필수이다.
- 가격 0원 (무료 앱인 경우) 및 출시 국가를 설정해주자.
- 모든 국가 및 지역 선택 권장
심사 제출 및 출시
제출 준비 중 페이지에서 심사에 추가를 클릭하며, 에러가 뜬다면 차근 차근히 해당 에러를 수정하면 된다.
1. TestFlight 설정
- 내부 테스터 그룹 생성
- 빌드 추가
- 테스트 정보 입력
2. 심사 제출 전 체크리스트
- [ ] 모든 스크린샷 업로드 완료
- [ ] 앱 설명 및 키워드 입력
- [ ] 개인정보처리방침 URL 확인
- [ ] 인앱 구매 메타데이터 완성
- [ ] 연령 등급 설정
- [ ] 가격 설정 완료
3. 일반적인 오류 해결
개인정보처리방침 누락
- 앱 정보 > 개인정보처리방침 URL 입력
인앱 구매 메타데이터 누락
- 제품별 스크린샷 및 설명 추가
데이터 수집 관련 오류
- 광고 사용 시 데이터 수집 "예" 선택 필수
4. 심사 제출
- 심사에 추가 클릭
- 모든 오류 해결
- 제출 클릭
- 심사 대기 (보통 24-48시간)
출시 후 관리
AdMob 연동 (광고 사용 시)
- AdMob에서 앱스토어 정보 추가
- 마케팅 URL에 app-ads.txt가 있는 도메인 설정
- app-ads.txt 인증 대기 (최대 24시간)
- 저의 경우, 안드로이드에서 이미 설정되어 있는데도 하루 정도가 지나서야 app-ads.txt가 인식이 되었습니다.
모니터링
- 앱 분석: 다운로드 수, 사용자 참여도 확인
- 리뷰 관리: 사용자 피드백 대응
- 크래시 리포트: 안정성 모니터링
마무리
iOS 앱 출시는 복잡해 보이지만, 단계별로 차근차근 진행하면 충분히 가능합니다. 특히 다음 사항들을 주의하세요.
- 사업자 정보는 모두 영문으로 입력
- 인앱 구매 제품 ID는 신중하게 설정 (삭제 시 재사용 불가)
- 개인정보처리방침은 필수
- 스크린샷은 모든 필수 사이즈 준비
첫 출시는 시간이 걸리지만, 한 번 설정해두면 업데이트는 훨씬 간단합니다.
축하합니다! 이제 당신의 앱이 전 세계 iOS 사용자들을 만날 준비가 되었습니다!
📚 참고 자료
이 가이드는 2025년 9월 기준으로 작성되었습니다. Apple의 정책은 수시로 변경될 수 있으니 최신 정보를 확인하시기 바랍니다.
'앱 개발' 카테고리의 다른 글
| 구글 플레이스토어 vs 앱스토어: 실제 출시 경험을 통해 본 플랫폼 비교 (0) | 2025.09.16 |
|---|---|
| iOS 앱스토어 출시 완벽 가이드: 인앱결제부터 심사까지 (1) (0) | 2025.09.11 |
| iOS 앱 리젝트 해결기: App Tracking Transparency (ATT) 구현 필수! (0) | 2025.09.03 |
| 메트로놈 앱 성능 최적화 사례, 크로스 플랫폼 개발 중 삽입된 로그가 성능을 저하시킨 사례 (0) | 2025.08.25 |