
앱 심사 거절(Reject) 피하는 가이드: 사람이 검수한다는 사실
애플 앱스토어와 구글 플레이 심사에서 광탈하지 않는 법. Privacy Manifest, 인앱결제 우회 금지, 저작권 문제부터 '사람이 직접 검수한다'는 사실을 이용한 심사 통과 전략까지.

애플 앱스토어와 구글 플레이 심사에서 광탈하지 않는 법. Privacy Manifest, 인앱결제 우회 금지, 저작권 문제부터 '사람이 직접 검수한다'는 사실을 이용한 심사 통과 전략까지.
안드로이드는 오는데 iOS는 조용합니다. 혹은 앱이 켜져 있을 때만 옵니다. Background/Terminated 상태 처리, APNs 인증서, 그리고 Notification Channel 설정까지 완벽하게 해결합니다.

안드로이드는 Xcode보다 낫다고요? Gradle 지옥에 빠져보면 그 말이 쏙 들어갈 겁니다. minSdkVersion 충돌, Multidex 에러, Namespace 변경(Gradle 8.0), JDK 버전 문제, 그리고 의존성 트리 분석까지 완벽하게 해결해 봅니다.

Debug에선 잘 되는데 Release에서만 죽나요? 범인은 '난독화'입니다. R8의 원리, Mapping 파일 분석, 그리고 Reflection을 사용하는 라이브러리를 지켜내는 방법(@Keep)을 정리해봤습니다.

아이폰 X 이후, 직사각형 화면의 시대는 끝났습니다. 노치와 홈 인디케이터로부터 당신의 UI를 지키는 방법, 그리고 SafeArea를 쓰지 말아야 할 때를 정리해봤습니다.

첫 앱 출시의 부푼 꿈을 안고 '심사 제출(Submit)' 버튼을 눌렀습니다. 일주일 뒤, 애플로부터 메일이 왔습니다.
Guideline 4.3 - Design - Spam
"스팸? 내가 만든 게 스팸이라고?" 열심히 만든 기능을 '복제된 껍데기 앱' 취급하는 피드백에 멘탈이 나갔습니다. 구글링을 해보니 저만 그런 게 아니더군요. 수많은 개발자들이 "애플 놈들 갑질이다" 하며 분노하고 있었습니다.
하지만 냉정하게 생각해보니, 저는 "백화점(App Store)의 입점 규칙"을 전혀 모르고 무작정 가판대를 펴려고 했던 셈이었습니다. 명품관 입점을 원하면서 동대문 시장처럼 물건을 입구에 진열했던 것이죠.
이 글은 제가 10번 넘게 리젝을 당하며 몸으로 배운 "애플/구글이 원하는 앱의 기준"과 "리젝 피하는 법", 그리고 "출시 후 관리(Vitals)"를 정리한 노트입니다.
앱스토어와 구글 플레이를 이해하려면 이 비유가 가장 적절합니다.
애플은 자신들의 스토어가 "프리미엄 공간"으로 남길 원합니다. 그래서 "사용자 경험(UX)을 해치거나", "돈이 안 되거나", "법적 문제가 있는" 앱을 병적으로 싫어합니다. 이 멘탈 모델을 장착하고 가이드라인을 보면 모든 게 이해됩니다.
제가 겪은, 그리고 주변에서 가장 많이 겪는 리젝 사유 5가지와 그 구체적인 해결책입니다.
Info.plist - Privacy Camera Usage Description). 단순히 "카메라 권한이 필요합니다"라고 쓰면 리젝입니다.PrivacyInfo.xcprivacy 파일에 명시해야 합니다. 이거 없으면 아예 심사 제출 버튼이 비활성화됩니다.AVAudioSession 설정을 확인하세요.구글은 예전에 "개발자 등록비 $25 내면 프리패스"라는 인식이 있었습니다. 심사도 기계가 해서 2시간이면 통과됐죠. 하지만 이제 달라졌습니다.
많은 분들이 앱 심사를 자동화된 봇(Bot)이 한다고 생각합니다. 정적 분석은 봇이 하지만, 최종 결정은 애플 직원이 직접 아이패드를 들고 앱을 켜보면서 합니다. 이 사실을 알면 대응 전략이 달라집니다.
App Review Information의 Notes란에 정중하게 편지를 쓰세요. "이 앱은 시각장애인을 위한 앱이라 UI가 단순합니다"라거나 "로그인은 이 계정으로 하시면 됩니다"라고 상세히 적으면 통과 확률이 비약적으로 올라갑니다.Resolution Center에서 따지지 말고 정중하게 소명하세요. "네 말대로 수정했다" 또는 "이건 오해다, 영상 봐라"라고 하면 생각보다 쉽게 풀어줍니다.앱이 출시되었다고 끝이 아닙니다. 구글은 "Android Vitals"라는 지표를 봅니다.
이 수치가 나쁘면 구글 플레이 검색 순위에서 나락으로 떨어집니다. 심지어 "기기 호환성 문제"라며 특정 기기(갤럭시 보급형 등)에서 다운로드 자체를 막아버릴 수도 있습니다. 그래서 Firebase Crashlytics 같은 툴을 붙여서 출시 후 모니터링을 필수로 해야 합니다.
리젝 당하고 일주일 기다리는 것보다, 제출 전에 10분 체크하는 게 낫습니다.
처음 리젝을 당하면 화가 나지만, 곰곰이 읽어보면 그들의 말이 맞을 때가 많습니다. "사용자가 헷갈릴 수 있다", "개인정보를 너무 많이 가져간다" 등은 결국 내 앱의 품질을 높이는 무료 컨설팅이기도 합니다.
애플과 구글은 적이 아닙니다. 그들은 "내 앱을 명품관에 걸어주고 싶어 하는 까다로운 큐레이터"라고 생각하세요. 그들의 기준을 맞추다 보면, 어느새 내 앱도 '명품'의 반열에 오르게 될 것입니다.