앱스토어·구글 플레이 심사, 처음 내기 전에 볼 12가지
앱은 다 만들었는데, 심사에서 돌아옵니다. 반려 한 번이면 며칠이 다시 시작되고, 사유는 매번 다르게 옵니다. 그런데 커뮤니티에 올라온 반려 사례를 모아 보면 자주 나오는 자리는 정해져 있습니다.
01심사자가 앱에 들어갈 수 있는가 — 데모 계정
로그인이 필요한 앱인데 심사자가 들어가지 못하면, 기능을 하나도 보지 못한 채 가이드라인 2.1(앱 완성도)로 돌아옵니다. 문자 인증번호, 이메일 인증, 소셜 로그인만 있는 앱이 특히 그렇습니다. 심사자는 해외에서 접속하고, 심사 기간 내내 서버가 켜져 있어야 합니다.
02앱 안에서 계정을 삭제할 수 있는가
계정을 만들 수 있는 앱은 앱 안에서 계정 삭제도 할 수 있어야 합니다(App Store 5.1.1(v)). 비활성화만으로는 안 되고 계정과 관련 개인정보를 지워야 하며, "고객센터로 문의"로만 안내하면 반려됩니다. 웹 링크는 삭제 페이지로 바로 연결될 때만 됩니다. 애플 로그인을 쓴다면 삭제할 때 애플 토큰도 해지(revoke)합니다.
Google Play는 앱 안 경로에 더해, 앱을 설치하지 않고도 삭제를 요청할 수 있는 웹 주소를 데이터 보안(Data safety) 양식에 적게 합니다.
appleid.apple.com/auth/revoke 호출.03카카오·구글 로그인과 가이드라인 4.8
소셜 로그인으로 계정을 만들게 하면, 동등한 로그인 수단도 함께 둬야 합니다(4.8). 2024년 개정 뒤 문구는 애플 로그인을 이름으로 요구하지 않고 세 가지 조건 — 이름과 이메일만 받을 것, 이메일을 숨길 수 있을 것, 동의 없이 광고 목적의 활동을 모으지 않을 것 — 을 듭니다. 카카오·네이버·구글 로그인은 보통 이 조건을 다 채우지 못해서, 실무에서는 Sign in with Apple을 함께 넣는 쪽이 안전합니다.
expo-apple-authentication · sign_in_with_apple · AuthenticationServices 같은 애플 로그인 의존성이, 카카오·구글 로그인 의존성과 함께 있는지. 애플이 숨긴 이메일(privaterelay.appleid.com · private.icloud.com)을 서버가 받아들이는지.04권한 요청 문구
카메라·사진·위치·마이크처럼 보호된 기능에 접근하면, 왜 쓰는지 적은 문구가 있어야 합니다. 문구가 없으면 앱이 그 자리에서 멈춰 2.1로, "카메라가 필요합니다"처럼 막연하면 개인정보 항목(5.1.1)으로 돌아올 수 있습니다. 쓰지 않는 권한은 선언하지 않습니다.
Google Play 는 문자·통화 기록·모든 파일 접근·설치된 앱 목록·사진과 동영상 같은 민감 권한을 핵심 기능일 때만 허용하고, 따로 신고하게 합니다.
app.json 의 ios.infoPlist·플러그인 권한 문구 ↔ AndroidManifest.xml·android.permissions. 라이브러리가 몰래 더하는 권한(이미지 선택·알림·위치 플러그인)도 합친 결과로 봅니다.05개인정보처리방침과 개인정보 라벨
개인정보처리방침은 스토어와 앱 안 양쪽에서 열려야 합니다(5.1.1(i)). 그리고 App Store 의 개인정보 라벨(App Privacy), Google Play 의 데이터 보안 양식은 앱이 쓰는 SDK(분석·크래시·광고·로그인)가 모으는 데이터까지 정확히 적어야 합니다. 실제와 다르면 나중에 앱이 내려갈 수 있습니다.
package.json·Podfile.lock·pubspec.lock)에서 데이터를 모으는 SDK 목록, 그 목록이 방침과 라벨 답안에 맞는지.06iOS 개인정보 매니페스트
2024년 5월 1일부터, 앱이나 SDK 가 정해진 API(사용자 기본값 저장, 파일 시각, 부팅 시각, 디스크 용량 등)를 쓰면 이유를 적은 PrivacyInfo.xcprivacy 가 있어야 업로드됩니다. 오래된 SDK·플러그인 버전이 흔한 원인입니다.
ios/**/PrivacyInfo.xcprivacy 또는 Expo ios.privacyManifests, 그리고 Firebase·로그인·푸시 SDK 버전이 매니페스트를 갖춘 버전인지.07미완성 흔적과 '웹사이트를 감싼 앱'
"준비 중" 화면, 자리 표시 글, 개발 서버 주소, 동작하지 않는 버튼은 완성도(2.1)로 돌아옵니다. 웹사이트를 그대로 감싸기만 한 앱은 최소 기능(4.2)으로 돌아옵니다. 2026년 10월 16일 개정에서는 심사 때 숨겨 두었다가 승인 뒤 켜는 기능을 금지하는 2.5.19가 새로 생겼습니다.
TODO·Lorem·준비 중·테스트, 운영 빌드의 API 주소, 첫 화면이 전체 화면 웹뷰 하나인지, 원격 설정으로 화면이 바뀌는 분기.08디지털 상품은 인앱 결제로
기능 잠금 해제, 유료 콘텐츠, 구독, 포인트 같은 디지털 상품은 애플 인앱 결제(3.1.1)와 Google Play 결제로 팔아야 합니다. 실물 상품이나 오프라인 서비스(예약, 배송 등)는 일반 결제사(PG)로 팔아도 됩니다. 앱 안에서 "웹에서 결제하면 더 싸요"처럼 다른 결제로 유도하는 것도 막혀 있습니다(미국 스토어 예외 제외).
react-native-iap·react-native-purchases 같은 인앱 결제 의존성, 외부 결제 안내 문구.09다른 사람의 글이 보이면 — 신고·차단
게시글·댓글·리뷰·채팅·프로필 사진처럼 다른 사용자에게 보이는 콘텐츠가 있으면, 신고 기능, 사용자 차단, 부적절한 콘텐츠를 걸러내는 장치, 연락처가 필요합니다(1.2). 2026년 2월부터 무작위·익명 채팅도 여기에 들어갑니다. Google Play 도 신고·차단과 이용약관 동의를 요구합니다.
report·block·신고·차단 화면과 서버 경로, 가입 때 약관 동의.10Google Play — 새 개인 계정과 빌드 요건
2023년 11월 13일 이후 만든 개인 개발자 계정은 비공개 테스트에 12명 이상이 14일 연속 참여한 뒤에야 프로덕션 출시를 신청할 수 있습니다. 중간에 빠지면 14일이 다시 셉니다. 또 2026년 8월 31일부터 새 앱과 업데이트는 Android 16(API 36) 이상을 대상으로 빌드해야 하고(연장 신청 시 11월 1일), 새 앱은 AAB 로 올립니다.
build.gradle 의 targetSdk 또는 expo-build-properties 의 targetSdkVersion, EAS 프로필이 APK 가 아니라 AAB 인지. 테스터 모집은 저장소 밖 일이라 일정에 먼저 넣습니다.11AI 로 개인정보를 보내면
2025년 11월 개정으로, 사용자 개인정보를 제3자 — 생성형 AI 포함 — 에 보낼 때는 무엇을 누구에게 보내는지 앱 안에서 알리고 명시적으로 동의를 받아야 합니다(5.1.2(i)).
12iOS 빌드 요건
2026년 4월 28일부터 App Store Connect 에 올리는 빌드는 Xcode 26 · iOS 26 SDK 로 만들어야 하고, 9월 9일부터는 배포 대상이 iOS 13 이상이어야 합니다. 오래된 Expo·React Native·Flutter 버전에 묶여 있으면 업로드부터 막힙니다.
ios.deploymentTarget, EAS 빌드 이미지.제출 전에 한 번에 확인하고 싶다면
vamuri 는 저장소를 읽어 위 내용을 포함한 앱스토어 심사 17개 질문에 근거(파일·줄)를 붙여 답하고, App Store · Google Play 각각 "준비됨 / 확인할 것 / 반려 가능성 높음"으로 알려 드립니다. 규정이 바뀌면 질문도 바뀝니다. 지금은 무료 기간입니다.