스토어 리뷰 요청사항 반영한 빌드 업로드
목차
앱 스토어 리뷰팀의 피드백에 따라 iOS 빌드를 재준비했다. Apple 로그인 capability를 추가하고, Google 관련 설정을 plist에 명시해야 했다. 요청사항 반영 후 1.0.0+6 버전으로 다시 배포했다.
앱 스토어 리젝션의 원인들
모바일 앱을 스토어에 올리면 리뷰 프로세스를 거친다. 가끔은 요청사항과 함께 리젝되기도 한다. 이번엔 몇 가지 누락이 있었다:
- Apple 로그인 capability 미선언: 다른 소셜 로그인(Google, 카카오 등)을 제공할 때는 Apple 로그인도 함께 제공해야 한다. 특히 한국을 포함한 여러 지역의 앱 스토어 정책이다.
- Google 설정 명시 부족: Google API를 쓰는 경우, 이를 앱 메타데이터와 설정 파일에 명시적으로 기록해야 한다.
이런 지적은 "기술적 구현은 돼 있는데 왜?"라는 반응을 받기 쉽다. 하지만 스토어 관점에선 다르다. 앱이 어떤 기능을 사용하고, 어떤 권한을 요청하며, 누구의 서비스와 연동되는지를 정확히 알아야 리뷰를 승인할 수 있다.
변경 파일과 역할
| 파일 | 역할 | 이번 변경 |
|---|---|---|
| ExportOptions.plist | iOS 빌드·배포 설정 | Apple 로그인 entitlement 추가, capability 명시 |
| pubspec.yaml | Flutter 의존성·메타데이터 | Google 패키지 버전 명시, iOS 설정 업데이트 |
ExportOptions.plist는 Xcode가 앱을 서명하고 배포할 때 읽는 파일이다. 여기엔 프로비저닝 프로필, 서명 인증서, 그리고 app capability(로그인, 푸시 알림 등)가 명시된다. 이를 잘못 설정하면 앱이 특정 기능을 쓸 수 없거나, 빌드 자체가 실패한다.
pubspec.yaml는 Flutter 프로젝트의 중앙 설정 파일이다. 여기서 Google 관련 패키지의 버전을 명시하고, iOS 최소 배포 버전 같은 플랫폼 특화 설정도 한다.
버전 관리: 1.0.0 vs +6
version string이 1.0.0+6이면:
1.0.0: 사용자가 보는 앱 버전 (공식 릴리스 버전)+6: 빌드 넘버 (같은 공식 버전을 몇 번 빌드했는지 기록)
리젝 후 재빌드할 때마다 빌드 넘버를 올린다. 스토어 제출 히스토리, QA 프로세스, 그리고 팀 간 소통에서 "어느 빌드를 말하는 건지" 애매해지지 않도록 한다.
배운 점: 선언(Declaration)의 중요성
처음엔 "구현되어 있으니 작동하겠지"라고 생각했다. 하지만 스토어 리뷰는 그게 아니다. 이건 스토어와의 계약이다:
- 앱이 무엇을 하는가
- 어떤 권한을 요청하는가
- 어떤 서드파티 서비스를 연동하는가
- 프라이버시 정책과 일치하는가
이걸 정확히 선언하지 않으면, 기술적 구현이 완벽해도 리뷰를 통과하지 못한다.
앞으로는 초기부터 "리뷰 가이드 체크리스트"를 만들 계획이다. 기능 구현만큼이나 "앱이 뭘 하는지 정확히 선언하기"를 신경 써야 한다. 재빌드는 번거롭지만, 한 번의 세심함으로 몇 번의 리젝을 줄 수 있다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.