
내 앱이 거부 당했다면?
애플 앱 스토어에 앱을 만들어 올리려는 와중에 제출한 번들 심사가 거부되는 경우가 많다. "헉 어떡하지" 하는 심리적 압박감이 있지만, 한방에 통과하는 게 중요한 게 아니라 거부되는 이유가 있고 이는 앱 실적에도 유의미한 영향이 있기 때문에 거부되는 것이다. 따라서 받아들여야 할 자세는 "자판기에 지폐를 넣었는데 다시 나왔으니 옷에 비벼서 다시 넣어야지" 하는 마음가짐이다. 그리고 무엇보다 그것에서 배우고 미래에 발생 가능한 일을 예방하는 것이라 생각한다.
1. 기기별 스크린샷 가이드 미준수
아이패드용 스크린샷을 등록할 때 주의가 필요하다. 아이패드 스크린샷 항목에 아이폰 이미지가 포함되어 있으면 여지없이 거부당한다. 애플은 각 기기 환경에 맞는 정확한 UI를 사용자에게 보여주는 것을 중요하게 여기기 때문에, 반드시 해당 규격에 맞는 기기 이미지만을 사용해야 한다. 아이폰 스크린샷에는 아이폰, 아이패드 스크린샷에는 아이패드 만 나오게 하자.
2. 법적 고지 및 약관 누락
앱 내부에 사용자 보호를 위한 최소한의 장치가 마련되어 있는지 확인을 요청한다. 앱의 설정 화면이나 회원가입 화면 등 눈에 잘 띄는 곳에 개인정보처리방침과 이용약관 링크가 반드시 존재해야 한다. 이를 누락할 경우 앱의 신뢰성 문제로 심사에서 탈락한다. 웹페이지가 없다면 블로그포스트로 만들어 링크를 연결하자.
3. 인앱 결제: 구매 복원 버튼 미구현
디지털 제품을 판매하는 앱이라면 제품 판매 페이지에 구매 복원(Restore Purchase) 버튼을 반드시 구현해야 한다. 사용자가 기기를 변경하거나 앱을 재설치했을 때 기존에 구매했던 내역을 다시 불러올 수 있는 기능을 제공하는 것은 애플의 필수 요구사항이다. 구현하는 방법을 모르겠다면 AI한테 물어보고 만들어달라고 하자.
4. 가격 정보의 하드코딩 문제
판매 제품의 가격을 앱 내부에 텍스트로 고정(Hard-coding)해두는 방식은 거부 가능성이 매우 높다. 지역별 통화나 환율 변동, 혹은 앱 스토어의 가격 등급(Tier) 변경에 대응하기 어렵기 때문이다. 따라서 App Store Connect에서 설정한 가격 정보를 API를 통해 동적으로 받아와 표시하는 방식을 택해야 한다. 이것도 AI한테 물어보자.
결국 심사 거부는 단순한 '방해물'이 아니라, 내 앱을 더 견고하고 표준에 가깝게 만드는 과정이다. 사례들을 바탕으로 체크리스트를 만들어 미래에 발생할 수 있는 리스크를 미리 예방하는 태도를 갖는것이 건강한 방향이다.
이 글이 앱 출시를 앞둔 다른 이들에게도 "옷에 비벼 다시 넣는" 여유와 힌트가 되길 바란다.
'자연과학 > 컴퓨터과학' 카테고리의 다른 글
| 구글/애플 앱 심사 통과를 위한 체크리스트 (Flutter 개발) (0) | 2026.03.12 |
|---|---|
| 2026.02.06 일자 플러터 개발 시 클로드 코드 사용량 줄이는 법에 대한 제미나이 답변 (0) | 2026.02.06 |
| <Flutter> json_serializable, g 파일 생성 불가 (0) | 2025.09.10 |
| <Flutter> 소셜로그인 구현 에러 2 (2) | 2025.08.30 |
| <Flutter> 소셜로그인 구현 에러 (2) | 2025.08.29 |