첫 번째 앱 리뷰를 위한 2026년 완전한 가이드 - iOS 및 Android
첫 번째 앱을 앱 스토어 또는 플레이 스토어에 제출하는 것은 압도적인 느낌을 줄 수 있습니다. 2026년 constantly evolving guidelines와 더 엄격한 enforcement로 인해 앱을 승인하기 위해서는 세부 사항에 대한 주의가 필요합니다. 이 포괄적인 가이드는 iOS 및 Android 플랫폼에 대한 첫 번째 제출에 대한 리뷰를 통과하기 위해 필요한 모든 것을 안내합니다.
애플과 구글은 최근 몇 년 동안 리뷰 프로세스를 엄격하게 강화했으며, 특히 개인 정보 보호, 보안 및 사용자 경험에 중점을 두고 있습니다. 이러한 변경 사항을 이해하는 것은 초보 개발자에게 필수적입니다.
iOS 앱 스토어 리뷰 일정
- 표준 리뷰: 24-48 시간
- 피크 기간: 3-5 일 (특히 휴일 시즌)
- 주말: 리뷰가 처리되지 않습니다.
- 급여 리뷰: 중요 버그 수정에 사용할 수 있으며 (App Store Connect를 통해 요청해야 함)
프로 팁: 주중 초반에 제출하여 주말 지연을 피하세요. 월요일 제출은 일반적으로 수요일에 리뷰됩니다.
애플리케이션 스토어 연결 상태
- 제출 준비: 제출을 위해 빌드 또는 메타데이터가 준비 중입니다.
- 심사 대기: 애플이 제출을 대기 중입니다.
- 심사 중: 심사 팀이 앱을 활발하게 검토 중입니다.
- 개발자 배포 대기: 승인되었지만 수동 배포 선택을 기다리고 있습니다.
- 반려/해결되지 않은 문제: 승인하기 전에 애플이 변경이 필요합니다.
구글 플레이 스토어 심사 타임라인 (2026 업데이트)
- 처음 리뷰: 3-7 일 (이전 연도보다 훨씬 더 길다)
- 테스트 종료 게이트: 영향을 받은 새로운 개인 Play Console 계정에 대해 14 일 이상이 걸리면 프로덕션 액세스를 요청할 수 있습니다
- 테스트 후 프로덕션 리뷰: 테스트 종료 요구 사항이 완료된 후 일반적으로 3-7 일 후
- 기존 앱 업데이트: 1-3 일
- 정책 위반: 추가 리뷰가 트리거되면 14 일 이상까지 연장될 수 있습니다
중요 업데이트: Google은 일부 새로운 Play Console 계정에 대해 훨씬 더 엄격한 테스트가 필요하다고 요구하고 있습니다. 이는 아래에서 자세히 설명됩니다.
애플 개발자 계정 설정
첫 번째 iOS 릴리스 전에 애플 쪽을 올바르게 설정하십시오:
- 애플 개발자 프로그램에 가입하세요 애플 개발자 프로그램
- 애플 계정에 두 팩터 인증을 활성화하세요
- 적절한 회원 유형을 선택하세요:
- 개인/개인 사업주: 판매자 이름은 앱 스토어에서 개인의 법적 이름이 됩니다.
- 기업: 법적 엔터티, D-U-N-S 번호, 공개 웹사이트, 그리고 애플의 계약에 회사에 대한 권한을 부여할 수 있는 사람을 필요로 합니다.
- 등록 시 법적 이름을 사용하세요. 첫/마지막 이름 field에 별명이나 회사 이름을 사용하면 승인 지연이 발생할 수 있습니다.
- 등록 승인이 나면 App Store Connect에 로그인하여 앱 레코드를 만들고 최종 번들 ID, 앱 이름, SKU, 그리고 기본 언어를 설정하세요.



중요: 애플은 시간에 따라 최소 SDK 요구 사항을 변경합니다. 2026년 4월 28일부터 2026년 4월 28일, 앱 스토어 연결에 업로드된 앱은 iOS & iPadOS 26 __CAPGO_KEEP_0__ 이상을 사용해야 합니다. iOS & iPadOS 26 SDK or later.
이것이 대부분의 첫 번째 Android 퍼블리셔가 당황하는 변경 사항입니다:
12 테스터 요구 사항 (새로운 개인 Android 계정)
Google Play 개발자 계정이면
__CAPGO_KEEP_0__ 2023년 11월 13일 이후에 생성된 개인 계정앱이 프로덕션으로 출시되기 전에, 닫힌 테스트 기간을 완료해야 합니다.
요구 사항:
- 최소 12명의 테스터: 최소 12명의 테스트에 동의한 테스터를 모집해야 합니다.
- 14일 테스트 기간: 닫힌 테스트 기간은 최소 14일 연속으로 유지해야 합니다.
- 프로덕션 접근 신청: 테스트 기간이 끝난 후에도, Play Console에서 프로덕션 접근을 신청해야 합니다.
- 피드백 수집: 발견한 문제, 수정한 내용, 테스터가 앱을 사용한 방법을 문서화해야 합니다.
테스트 트랙 설정 방법
-
Closed 테스트 트랙 만들기
- Google Play Console로 이동하세요
- 테스트 및 출시 > 테스트 > Closed 테스트로 이동하세요
- 새로운 Closed 테스트 트랙에서 릴리즈를 만드세요
- Android 앱 번들 (
.aab)
-
테스터를 모집하세요
테스터를 찾는 곳:
- 친구와 가족 (가장 쉬운 시작점)
- 개발자 커뮤니티 (Reddit의 /r/androiddev, /r/betatests)
- 소셜 미디어 팔로워
- 베타 테스트 플랫폼 (BetaList, BetaTesting.com)
- 대학 학생 (연결이 있다면)
중요: 테스터가:
- 유효한 Gmail 계정이 있어야 합니다
- 실제로 안드로이드 기기를 사용해야 합니다
- 14일 동안 계속 옵트인 상태가 유지되어야 합니다
-
테스터 초대
- Play Console에서 테스터 목록을 만듭니다
- 테스터 이메일 주소를 추가합니다
- 테스터에게 설치 및 사용을 위한 URL을 공유합니다
- 테스터에게 설치 및 사용을 위한 알림을 보내야 합니다
-
테스트 활동을 모니터링합니다
- Play Console에서 설치 횟수를 확인합니다
- 애플리케이션 오류 보고 및 ANR (응답이 없는 애플리케이션) 추적
- 테스터로부터 피드백 수집
- 프로모션 전에 심각한 문제를 해결
-
프로덕션으로 승격
- 14일 동안 12명 이상의 테스터가 동의한 경우
- 플레이 콘솔 대시보드에서 프로덕션 액세스 신청
- 모든 오류 보고서 및 피드백 검토
- 최종 검토를 위해 프로덕션 릴리즈 생성 및 제출
왜 구글이 이 요구 사항을 도입했는지
구글은 이 요구 사항을 도입하여
- 저품질 앱 스팸을 줄이고
- 사용자에게 앱이 적절히 테스트되도록 보장
- 애플리케이션을 악성으로부터 보호하기 위한 실제 사용 패턴을 식별합니다.
- 플레이 스토어의 전체 품질을 향상시킵니다.
현실적인 점검: 이 기능을 추가하면 최소 2-3주가 출시 일정에 추가됩니다. 계획을 세우고 테스터를 조기에 모집하세요.
인증 및 로그인 요구 사항
인증 시스템의 적절한 구현이 부족한 경우 가장 흔한 거절 사유입니다. 특히 소셜 로그인입니다.
애플 신원 인증 요구 사항 (iOS용 필수)
애플의 규칙: 앱이 구글, 페이스북, 트위터 등第三자 소셜 로그인 옵션을 제공한다면, 해야합니다. 또한 앱은
Sign in with Apple을 제공해야합니다.:
- 구글 로그인
- 페이스북 로그인
- 트위터/엑스 로그인
- 링크드인 로그인
- 어떤 다른 세 번째 인증 서비스
이것은 NOT 적용됩니다.:
- 이메일/암호만 인증
- 정부 ID 시스템
- 기업 SSO 시스템 (앱이 특정 기업에 해당할 때)
- 교육 제공자 인증 시스템
애플 로그인 구현
사회 로그인 사용 중이라면, 다음을 implement해야합니다.
import { SignInWithApple } from '@capacitor-community/apple-sign-in';
async function signInWithApple() {
try {
const result = await SignInWithApple.authorize({
clientId: 'com.yourapp.service',
redirectURI: 'https://yourapp.com/auth/callback',
scopes: 'email name',
state: '12345',
nonce: 'nonce',
});
// result contains:
// - identityToken
// - authorizationCode
// - email (may be null if user previously authorized)
// - givenName
// - familyName
// Send to your backend for verification
await verifyAppleToken(result.identityToken);
} catch (error) {
console.error('Apple Sign In failed:', error);
}
}
중요한 고려 사항:
-
이메일 개인 정보 보호: 사용자는 이메일을 숨길 수 있습니다. Apple은 사설 릴레이 이메일 (예 :
abc123@privaterelay.appleid.com)을 제공합니다. 앱은 이메일을 숨길 수 있습니다. -
첫 번째 사용자 vs 반복 사용자: Apple은 첫 번째 인증 후 사용자 정보 (이름, 이메일)만 제공합니다. 이 정보를 저장해야 하며, 이후 로그인 시에는 포함되지 않습니다.
-
버튼 디자인: Apple은 Sign in with Apple 버튼의 엄격한 디자인 지침을 제공합니다. 공식 자산을 사용하세요.
-
백엔드 인증: 백엔드 서버에서 항상 사용자 식별 토큰을 확인하고, 클라이언트 측 토큰만 신뢰하지 마세요.
안드로이드 소셜 로그인 요구 사항
: 안드로이드는 iOS와 달리 특정 제공자를 요구하지 않지만, Google은 지침을 제공합니다:
구글 로그인 요구 사항:
- 공식 구글 로그인 SDK을 사용해야 합니다.
- 구글의 브랜딩 가이드라인을 따르세요.
- 만약 제공한다면 기본 옵션으로 제공해야 합니다.
크로스 플랫폼 최적화: 모바일과 데스크톱에서 동일한 로그인 옵션을 제공하세요.
- 이메일/패스워드
- 애플 로그인 (iOS만, 또는 Android에서 웹 기반 애플 로그인을 지원한다면)
- 구글 로그인
- context: Capgo Builder / 네이티브 클라우드 빌드 제품 페이지. 역할: 짧은 UI 레이블 또는 네비게이션 아이템. 위치: native-build.astro 페이지. 메시지 키 `native_build_v2_wiz_and_s1_l` (네이티브 빌드 V2 위즈 앤 S1 L).
기타 사회적 옵션 (페이스북, 트위터 등)
데모 계정 요구 사항: 만든 앱이 로그인 기능을 필요로 한다면, must 제출할 때 demo 계정의 인증 정보를 올바르게 입력해야 합니다.
Demo Account Information:
Username: reviewer@demo.com
Password: ReviewTest123!
OR
Test Phone: +1 555-0123
Test OTP: 123456 (static for review)
Notes:
- This account has full premium features enabled
- All payment flows work in sandbox mode
- Account will reset daily
Common Mistakes:
- 만료된 인증 정보를 제공하는 경우
- demo 계정이 모든 기능에 접근할 수 없는 경우
- 휴대폰 인증을 우회하는 방법을 언급하지 않는 경우
- 결제 정보를 언급하지 않는 경우
개인 정보 보호 정책 및 법적 요구 사항
애플 스토어와 구글 플레이 스토어는 모두 앱의 개인 정보 보호 정책과 서비스 약관에 접근성이 있어야 합니다. 앱의 첫 번째 제출이 승인되기 전에 context:HTML text fragment from a longer Capgo UI string (parent key `create_an_issue_and_discuss_before_working_on_a_new_feature`). Page/area: Capgo marketing website. Role: Long marketing or legal paragraph. Seen in: page contributing.astro. Message key `create_an_issue_and_discuss_before_working_on_a_new_feature` (Create An Issue And Discuss Before Working On A New Feature). | HTML text fragment from a longer Capgo UI string (parent key `mention_issue_before_working`). Page/area: Capgo marketing website. Role: Website copy sentence. Seen in: page contributing.astro. Message key `mention_issue_before_working` (Mention Issue Before Working). | 앱의 첫 번째 제출이 승인되기 전에,
개인정보 보호 정책 요구 사항
개인정보 보호 정책은 다음과 같이 구성되어야 합니다.
-
공개 접근 가능
- 공개 URL에 호스팅 (로그인 후에 접근 불가)
- 표준 웹 브라우저에서 로드 가능
- 앱의 언어와 동일한 언어로 제공
-
필수 주제를 포함해야 합니다.:
- 수집한 데이터에 대한 설명
- 수집한 데이터 사용 방법
- 세계적인 제 3 자와 데이터 공유
- 데이터 보유 기간
- 사용자 권리 (접근, 삭제, 이동성)
- 개인 정보 보호에 대한 문의에 대한 연락처 정보
- 13세 미만/16세 미만 사용자를 위한 어플의 아동 개인 정보 보호
-
링크드 인 앱에서 연결
- 설정 또는 계정 화면에서 접근 가능
- 메뉴에 묻지 않고 한 번에 클릭해야 함
- 기본 브라우저 또는 인앱 브라우저에서 열어야 함
개인 정보 보호 정책을 호스팅하는 곳
Option 1: 웹사이트 (권장)
https://yourapp.com/privacy-policy
https://yourapp.com/terms-of-service
Option 2: GitHub 페이지 (무료)
https://yourusername.github.io/app-privacy-policy
Option 3: 개인 정보 보호 정책 생성기 (Quick Start)
중요한context: Bug bounty program page. Role: UI label. Seen in: page bug-bounty.astro. Message key `bug_bounty_important_label` (Bug Bounty Important Label)
: 앱의 실제 데이터 운영 방식이 반영된 정책을 보장하기 위해, 시작을 위한 생성기는 충분합니다. 그러나 정책이 앱의 실제 데이터 운영 방식과 일치하지 않으면, 일반 템플릿은 검출될 것입니다.
Terms and Conditions Requirements
- Terms and Conditions이 필요하지 않지만, 권장되는 사항입니다. 또한, 다음의 경우에는 반드시 필요합니다:
- 인앱 구매 또는 구독을 제공할 경우
- 사용자 생성 콘텐츠를 제공할 경우
- 기본 앱 기능 이외의 서비스를 제공할 경우
필수 포함:
- 허용된 사용 정책
- 계정 종료 조건
- 책임 제한
- 지적 재산권
- 분쟁 해결 과정
- 환불 정책 (특히 IAP)
앱 내 구현
// Settings or Account Screen
function LegalLinks() {
return (
<div className="legal-section">
<h3>Legal</h3>
<a
href="https://yourapp.com/privacy-policy"
target="_blank"
rel="noopener noreferrer"
>
Privacy Policy
</a>
<a
href="https://yourapp.com/terms-of-service"
target="_blank"
rel="noopener noreferrer"
>
Terms of Service
</a>
<a
href="https://yourapp.com/contact"
target="_blank"
rel="noopener noreferrer"
>
Contact Us
</a>
</div>
);
}
앱 스토어 메타데이터 요구 사항
두 개의 스토어는 앱 제출 시 개인 정보 정책 URL 제공을 요구합니다:
iOS - 앱 스토어 연결:
- 앱 정보 > 일반 정보 > 개인 정보 정책 URL
- HTTPS만 사용해야 합니다 (HTTP는 거부됩니다)
- 앱 스토어 페이지에 표시됩니다
- 사용자에게 실제 연락처가 포함된 지원 URL을 추가하세요
- 제출 전에 연령 등급 설문지를 완료하세요
안드로이드 - 구글 플레이 콘솔:
- 스토어 존재 > 스토어 설정 > 개인 정보 정책
- 어린이 대상 앱에 모두 필요합니다
- 모든 앱에 강력히 추천합니다
Privace Nutrition Labels (iOS)
iOS는 '영양표' 형식의 상세 개인 정보 공개가 필요합니다:
Declare해야 하는 카테고리:
- 연락처 정보: 이메일, 이름, 전화번호
- 금융 정보: 결제 정보, 신용 카드, 은행 계좌
- 위치: 정확한 위치 또는 대략적인 위치
- 사용자 콘텐츠: 사진, 동영상, 음성, 메시지
- 식별자: 사용자 ID, 기기 ID, 광고 ID
- 사용 데이터: 제품 상호 작용, 광고 데이터, 충돌 로그
- 디아그노스틱스: 데이터 충돌, 성능 데이터
각 데이터 유형에 대해 명시하세요:
- 데이터가 수집되는지 여부
- 사용자 식별 정보와 연결되는지 여부
- 추적을 위한 데이터로 사용되는지 여부
- 수집 목적
일반적인 실수: 분석 SDK이 데이터를 수집한다고 말하는 것과 실제로 수집하지 않는다는 말과는 다릅니다. 모든第三자 SDK를 데이터 수집에 대한 감사서로 확인하세요.
구글 플레이 데이터 안전 섹션
iOS와 유사하게, Android는 데이터 안전성 선언이 필요합니다.
단계:
- Play 콘솔 > 앱 콘텐츠 > 데이터 안전성으로 이동하세요
- 데이터 수집에 대한 질문에 답하세요
- 수집된 데이터의 타입을 지정하세요
- 보안 관행에 대해 설명하세요 (암호화 등)
- 개인 정보 보호 정책 링크를 제공하세요
중요: 이 정보는 법적으로 의무적입니다. 오보로 인해 앱이 제거되고 계정이 중단될 수 있습니다.
일반적인 첫 번째 거부 사유
앱이 거부되는 이유를 이해하면 이러한 함정에 빠지지 않도록 도와줍니다:
1. 앱이 충돌하거나 실행되지 않습니다
왜 일어나는지:
- 만들기에서만 테스트를 하며 실제 기기에서 테스트를 하지 않습니다
- 네트워크 오류에 대한 오류 처리를 누락합니다
- API
- 특정 장치 기능(카메라, GPS)을 가정하는 경우
예방 방법:
// Always implement proper error handling
async function loadData() {
try {
const response = await fetch('https://api.yourapp.com/data');
if (!response.ok) {
throw new Error(`HTTP ${response.status}`);
}
const data = await response.json();
return data;
} catch (error) {
// Show user-friendly error
showError('Unable to load data. Please check your connection.');
// Log for debugging
console.error('Data load failed:', error);
// Graceful degradation
return getCachedData();
}
}
테스트 체크리스트:
- 실제 장치에서 테스트(최소 2-3 개의 모델)
- 네트워크가 좋지 않은 경우 테스트(네트워크 링크 조건자 사용)
- 비행 모드에서 테스트
- 권한이 거부된 경우 테스트
- 캐시 데이터가 없는 새 설치로 테스트
2. 핵심 기능이 누락되거나 깨진 경우
왜 발생하는가:
- 스크린샷에 표시된 기능이 아직 존재하지 않는 경우
- 데모 계정은 광고된 기능에 접근할 수 없습니다
- 광고된 기능은 표시되지만 구현되지 않았습니다
- 앱 내 "곧 출시" 플레이스 홀더
어떻게 방지할 수 있나요:
- 모든 광고된 기능이 완료된 경우에만 제출하세요
- 데모 계정에 전체 접근 권한이 있는지 확인하세요
- 제출하기 전에 완성되지 않은 기능을 제거하거나 비활성화하세요
- 스크린샷을 현재 빌드와 정확히 일치하도록 업데이트하세요
3. 어린이 등급에 부적합한 콘텐츠
왜 이런 일이 발생하는가:
- 어린이 등급이 4+로 설정되어 있지만 앱에 사회 기능이 포함되어 있습니다
- 등급이 실제 콘텐츠와 일치하지 않습니다
- 사용자 생성 콘텐츠 미승인
- 미승인 외부 콘텐츠 링크
정확한 연령 등급 설정 방법:
iOS 연령 등급:
- 4+ (의견이 없는 콘텐츠)
- 9+ (가끔 약한 콘텐츠)
- 12+ (중간 콘텐츠)
- 17+ (빈번/강한 콘텐츠)
안드로이드 콘텐츠 등급:
- 모두
- 10세 이상
- 청소년
- Mature 17+
- Adults only 18+
중요만약 사용자가 콘텐츠를 서로 공유할 수 있다면, 다음이 필요합니다:
- 콘텐츠 관리 시스템
- 신고/차단 기능
- rõ한 커뮤니티 지침
- 필요한 경우 나이 제한
4. 유도적 또는 허위 메타데이터
왜 일어나는가:
- 앱 이름이 제공하지 않는 기능을 약속한다
- 경쟁사 또는 모의 스크린샷
- 가짜 리뷰 또는 평점 조작
- 설명에 최고의 표현이 없이는 증명되지 않은 것
문제의 메타데이터의 예시:
❌ BAD:
- 앱 이름: “최고의 피트니스 트래커 - #1 앱”
- 설명: “만든 최고의 혁신적인 앱!”
- 스크린샷: 일반적인 스톡 사진
✅ GOOD:
- 앱 이름: “피트트랙 - 워크아웃 로거”
- 설명: “운동 루틴을 커스터마이즈하고 진행 차트를 추적하세요.”
- 스크린샷: 현재 빌드의 실제 앱 화면
5. 테스트 부족 (특히 안드로이드 클로즈드 테스트)
왜 일어나는가?:
- 필수 14일 테스트 기간을 건너뛰는 경우
- 테스터를 충분히 모집하지 못하는 경우
- 테스터가 실제로 앱을 사용하지 않는 경우
- 테스트 중에 충돌 모니터링을 하지 않는 경우
예방하는 방법:
- 계획된 출시 3-4주 전에 테스터를 모집하기
- 테스트 중 Firebase Crashlytics 또는 유사한 도구를 사용하기
- 테스터와 적극적으로 상호작용하기 (설문조사, 피드백 양식)
- 판매에 출시하기 전에 심각한 문제를 해결하기
6. 권한이 없는 이유
왜 일어나는가?:
- 위치 요청은 사용하지 않음
- 카메라 권한 설명이 없음
- 연락처 접근 목적이 없음
- 이동 배경 위치 (이동 앱이 아닌)
해결 방법:
iOS - Info.plist:
<key>NSCameraUsageDescription</key>
<string>Camera access is required to scan QR codes for quick login.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Location helps us show nearby fitness centers and outdoor running routes.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Photo library access lets you upload a profile picture and share workout photos.</string>
안드로이드 - 권한 전략:
<!-- Only request what you actually need -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- Use when-in-use rather than always for location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- Avoid if possible -->
<!-- <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> -->
런타임 권한 요청:
import { Camera } from '@capacitor/camera';
async function takePicture() {
// Request with context
const permissionStatus = await Camera.requestPermissions();
if (permissionStatus.camera === 'granted') {
const photo = await Camera.getPhoto({
quality: 90,
allowEditing: true,
resultType: 'uri'
});
return photo;
} else {
// Explain why permission is needed
showDialog(
'Camera access required',
'To upload a profile picture, please enable camera access in Settings.'
);
}
}
iOS-만족하는 요구 사항
앱 스토어 스크린샷 및 미리보기
필요한 크기:
- 6.7인치 iPhone: 1290 x 2796
- 13“ iPad: 2064 x 2752
- 12.9“ iPad: 2048 x 2732
중요: 앱이 iPad을 지원한다면 iPad 스크린샷을 업로드해야 합니다. iPhone 스크린샷을 iPad 슬롯에 맞추지 마세요.
스크린샷 최적화:
- 실제 앱 콘텐츠를 보여야 합니다 (모의 콘텐츠는 제외)
- 상태바를 제거하거나 현실적인 콘텐츠를 보여야 합니다
- 모든 지원 언어를 고려하여 지역화해야 합니다
- 텍스트 오버레이를 최소화해야 합니다
- 첫 2-3 스크린샷에서 주요 기능을 보여야 합니다
앱 스토어 연결 메타데이터 설정
제출하기 전에 다음 App Store Connect 필드를 완료해야 합니다:
- 개인 정보 보호 정책 URL: iOS 앱에 필요합니다.
- 지원 URL: iOS 앱에 필요하며 실제 연락처로 연결되어야 합니다.
- 연령 등급: 앱을 출시하기 위해 설문조사를 완료하세요.
- 앱 리뷰 정보: 리뷰 팀을 위한 연락처, 로그인 필요 시 로그인 자격 증명, 리뷰 팀을 위한 명확한 설명을 추가하세요.
- 수출 규정: 암호화에 대한 질문에 답변하거나 설정하세요.
ITSAppUsesNonExemptEncryptioninInfo.plist: 업로드할 때마다 동일한 답변을 반복하지 않도록 적절히 설정하세요.
테스트 플라이트 전 앱 리뷰 가이드
실제 테스트 플라이트를 한 번 진행하세요.
- 테스트 플라이트에서 정확한 빌드를 설치하세요.
- 리뷰 계정으로 로그인하세요.
- 구매, 복원, 취소 경로를_walk through하세요.
- 리뷰어는 숨겨진 설정 없이 주요 기능에 접근할 수 있는지 확인하세요.
- iPhone과 iPad 모두 지원하는 경우 iPhone과 iPad에서 테스트하세요.
앱 프리뷰 비디오 (선택적이지만 권장)
요구 사항:
- 15-30 초 길이
- 실제 앱 동영상이 포함되어야 함
- 간결한 텍스트 오버레이 포함 가능
- No music with copyright issues
- 스크린샷과 동일한 해상도
애플 로그인 구현
이미 위에 설명했지만, iOS 리뷰 시 중요합니다.
인앱 구매 요구 사항
디지털 상품이나 서비스를 제공하는 경우:
필수적인 고지:
- 구매 전에 가격이 명확하게 표시됨
- 구독 약관이 명확하게 설명됨
- 취소 방법이 표시됨
- 구매를 복원하는 버튼
예시로 합법적인 구독 화면:
function SubscriptionOffer() {
return (
<div className="subscription-screen">
<h2>Choose Your Plan</h2>
<PlanCard>
<h3>Monthly</h3>
<p className="price">$9.99/month</p>
<ul>
<li>Unlimited workouts</li>
<li>Personalized plans</li>
<li>Progress tracking</li>
</ul>
<button>Subscribe</button>
</PlanCard>
<PlanCard>
<h3>Annual</h3>
<p className="price">$79.99/year</p>
<p className="savings">Save 33%</p>
<ul>
<li>Everything in Monthly</li>
<li>Priority support</li>
</ul>
<button>Subscribe</button>
</PlanCard>
<div className="subscription-terms">
<p>
Subscription automatically renews unless cancelled at least
24 hours before the end of the current period. Manage your
subscription in Settings.
</p>
<button onClick={restorePurchases}>Restore Purchases</button>
</div>
<div className="legal-links">
<a href="/privacy/">Privacy Policy</a> |
<a href="/terms">Terms of Service</a>
</div>
</div>
);
}
안드로이드-특정 요구 사항
구글 플레이 콘솔 계정 설정
첫 번째 안드로이드 릴리즈 전에 Play Console 계정과 앱 셸이 존재하는지 확인하세요:
- 개발자 계정을 생성하세요 Play Console 가입
- Play Console에서 홈 > 앱 만들기
- 기본 언어, 앱/게임 유형 및 지원 이메일을 선택하세요
- 필요한 Play 정책, 수출, 및 Play 앱 서명 선언을 수락하세요
- 앱이 무료 또는 유료
중요: 구글은 유료 앱을 무료로 변경할 수 있지만, 앱이 무료로 제공된 후에는 유료로 전환할 수 없습니다.
앱 번들 요구 사항
중요: 구글 플레이는 Android 앱 번들 (.aab) 형식이 아닌 APK를 요구합니다.
# Sync the native Android project first
bunx cap sync android
# Then build the release app bundle
cd android
./gradlew bundleRelease
목표 API 레벨 요구 사항
현재 요구 사항: 새로운 앱과 앱 업데이트는 Android 15 (API 레벨 35) 이상을 대상으로 해야 합니다.
android/app/build.gradle에 업데이트:
android {
compileSdkVersion 35
defaultConfig {
targetSdkVersion 35
minSdkVersion 23 // Minimum supported version
}
}
구글 플레이 데이터 안전
이미 위에 설명했지만, Android 승인에 절대적으로 중요합니다.
폐쇄 테스트 트랙 (현재 요구 사항)
새로 생성된 개인 개발자 계정에 대한 큰 일 중 하나: 이 안내서의 앞부분에서 자세히 설명한 12 명의 테스터, 14 일의 요구 사항입니다.
타임 라인:
- 주 1: 테스터를 모집하고 폐쇄 테스트를 설정합니다.
- 주 2-3: 최소 14 일간의 활성 테스트 기간
- 주 4: 문제를 해결하고 생산 준비를 합니다.
- 주 5: 생산 검토에 제출합니다.
대상 청중 및 콘텐츠 등급
콘텐츠 등급 설문 조사:
- 모든 앱에 필요합니다.
- 10-15 분 정도 소요됩니다.
- 나이 등급을 결정합니다 (모두, 청소년, 성인 등)
- 업데이트할 때마다 콘텐츠가 답변에 영향을 미치는 경우
포함된 주제:
- 폭력
- 성적 내용
- 비속어
- 제어된 물질
- 카지노
- 사용자 상호 작용 기능
중요내용이 사용자 생성 콘텐츠 또는 소셜 기능을 포함하는 경우, 이를 공개하고 모니터링을 구현해야 합니다.
스토어 목록 요구 사항
필수 자산:
- 앱 아이콘 (512 x 512 PNG)
- 기능 그래픽 (1024 x 500 JPG 또는 PNG)
- 폰 스크린샷 (최소 2개, 최대 8개)
- 7" 태블릿 스크린샷 (선택 사항이지만 권장)
- 10" 태블릿 스크린샷 (선택 사항이지만 권장)
설명 요구 사항:
- 짧은 설명 (80자 이내)
- 전체 설명 (4000자 이내)
- 앱 기능을 정확하게 설명해야 함
- 연락처 정보 또는 가격을 포함할 수 없음
제출하기 전에 이 포괄적인 체크리스트를 확인하십시오:
제출하기 전에 이 포괄적인 체크리스트를 확인하십시오:
기술 요구 사항
- 실제 기기에서 앱이 성공적으로 시작됩니다
- 스크린샷에 표시된 모든 기능이 작동합니다
- 장치나 “곧 출시됩니다” 콘텐츠가 없습니다
- 모든 세 번째-party API 키가 프로덕션 키입니다
- 네트워크 오류 처리가 implemented
- 권한 요청에 명확한 설명이 포함됩니다
- 네트워크 조건이 좋지 않은 경우 앱이 충돌하지 않습니다
- 권한이 거부된 경우 테스트
- 최소 지원 OS 버전에서 테스트
- 메모리 누수가 확인되고 수정되었습니다
인증 및 로그인
- Apple 로그인 (iOS) 사용 시 포함됩니다.
- 리뷰 노트에 제공된 데모 계정 자격 증명
- 데모 계정은 모든 기능에 접근할 수 있습니다.
- 비밀번호 재설정 흐름이 작동합니다.
- 로그아웃 기능이 올바르게 작동합니다.
- GDPR/CCPA에 따라 삭제 옵션이 제공됩니다.
법적 및 개인 정보 보호
- 개인 정보 보호 정책이 공개적으로 액세스 가능합니다.
- 앱 스토어 목록에 개인 정보 보호 정책 URL이 추가되었습니다.
- 서비스 약관이 공개적으로 액세스 가능합니다 (적용 시)
- 개인 정보 보호 정책이 앱 내 설정 화면에 연결됩니다.
- iOS에서 개인 정보 보호 영양 표가 정확합니다.
- 데이터 안전 섹션 완료 (Android)
- 모든 데이터 수집 목적이 설명됨
- 세 번째-party SDK 데이터 수집이 공개됨
내용 및 메타데이터
- 앱 이름은 지침을 따름 (키워드 Stuffing 없음)
- 설명은 실제 기능을 설명함
- 스크린샷은 실제 현재 앱 화면을 보여줌
- 스크린샷은 모든 지원 언어에 맞춤
- 경쟁사 언급이 없는 설명
- 증거가 없는 초상권 없음
- 내용의 실제 연령 등급과 일치
- 연락처 이메일이 모니터링됨
iOS 전용
- Apple 계정으로 로그인 구현 (사회 로그인 사용 시)
- 필요한 모든 스크린샷 크기 제공
- 아이패드 지원이 활성화된 경우 실제 아이패드 스크린샷 업로드
- Info.plist 권한 설명이 명확
- 지원 URL에 실제 연락처 정보가 추가
- 앱 스토어 연결에 개인 정보 정책 URL 추가
- 연령 등급 설문조사 완료
- 수출 규정에 대한 올바른 답변
- 앱 리뷰 연락처 및 비만료 데모 계정 제공
- iOS 15.0 이상으로 대상
- IAP 사용 시: 가격이 명확하고 구매 취소 버튼이 존재
- Android나 다른 플랫폼에 대한 참조가 없습니다.
Android 전용
- App Bundle (.aab) 형식이 사용됩니다.
- API 35 이상으로 설정해야 합니다.
- 콘텐츠 등급 설문이 완료되었습니다.
- 기능 그래픽이 업로드되었습니다.
- Play 콘솔 계정이 closed testing을 요구하는 경우 closed testing이 완료되었습니다. (12명, 14일)
- 테스트 중 발생한 충돌 보고서가 검토되고 수정되었습니다.
- iOS나 다른 플랫폼에 대한 참조가 없습니다.
테스트 (Android 현재 요구 사항)
- Play 계정이 closed testing을 요구하는 경우 12명 이상의 테스터가 모집되었습니다.
- closed testing 트랙이 생성되었습니다.
- 14일 연속 테스트 완료
- 테스터가 실제로 앱을 사용했으며(설치만 한 경우 제외)
- 테스트 중 앱 오류 모니터링 활성화
- 테스트 중 발견된 심각한 버그 수정
- 테스터의 피드백 문서화
리뷰 노트: 포함해야 할 내용
리뷰 노트: 성공적인 승인과 거부의 차이점입니다. 여기서 무엇을 포함해야 할까요?
리뷰 노트 템플릿
APP REVIEW INFORMATION
=== Test Account ===
Email: reviewer@testapp.com
Password: TestReview123!
(This account has all premium features enabled)
(This account stays active during review)
=== Review Contact ===
Name: Jane Developer
Email: review@yourapp.com
Phone: +1 555-0100
=== Testing Instructions ===
1. Launch app and tap "Sign In"
2. Enter test credentials above
3. Navigate to "Dashboard" to see main features
4. Tap "Upgrade" to test subscription flow (sandbox mode)
5. Go to Settings > Account to see privacy policy and terms
=== Key Features to Test ===
- Workout tracking (tap "New Workout" on Dashboard)
- Progress charts (Analytics tab)
- Social sharing (Share button on workout details)
- Camera upload for profile picture (Settings > Profile)
=== Third-Party Services ===
- Firebase Authentication (for login)
- Stripe (for payments - sandbox mode)
- AWS S3 (for image uploads)
- Google Maps SDK (for location features)
=== Notes ===
- Location permission is optional, app works without it
- Camera permission only requested when uploading profile picture
- All subscription flows use Apple/Google sandbox environments
- Background location is not used
- Support URL and privacy policy are available from Settings > Account
=== Contact ===
For questions: developer@yourapp.com
Response time: Within 24 hours
iOS 전용 리뷰 노트
iOS의 경우에도 다음을 포함하세요:
=== Device Coverage ===
Tested on: iPhone 15 Pro Max, iPad Pro 13-inch
=== App Store Connect Metadata ===
Support URL: https://yourapp.com/support
Privacy Policy: https://yourapp.com/privacy-policy
=== Submission Notes ===
- iPad screenshots match the current iPad UI
- Export compliance answered for this build
- Sign in with Apple is available on the login screen
Android 전용 리뷰 노트
Android의 경우에도 다음을 포함하세요:
=== Testing Track Information ===
Closed testing period: [Start Date] to [End Date]
Number of active testers: 23
Critical issues found during testing: 2 (both fixed)
Test distribution method: Email invite list
=== Crash Data ===
Testing period crashes: 3 total
Crash rate: 0.8%
All crashes fixed in this build
=== API Levels ===
Target SDK: 35 (Android 15)
Min SDK: 23 (Android 6.0)
Tested on: Android 11, 12, 13, 14, 15
첫 번째 제출 시 거부된 경우
격분하지 마세요 - 거부은 흔한 일이며 특히 첫 번째 제출 시 더욱 그렇습니다. 다음과 같이 처리하세요:
거부 후 진행 단계
-
거부 내용을 신중히 읽어보세요
- 특정 지침을 위반한 구체적인 부분을 확인하세요 (예: 4.3, 5.1.1)
- 리뷰어의 댓글을 철저히 읽어보세요
- 스크린샷이 제공된 경우 이를 확인하세요
-
문제를 이해하세요
- 공식 문서에서 지침을 확인하세요
- 온라인에서 유사한 사례를 검색하세요
- 이것이 이해되지 않는 부분인지 또는 실제 문제인지 확인하세요
-
원인에 대한 해결책을 찾으세요
- patch하지 말고 올바르게 고치세요
- 고치고 난 후에 철저히 테스트하세요
- 고친 내용을 문서화하세요
-
적절하게 대응하세요
반려가 정확하다면:
Thank you for the feedback. I have addressed the issue: Issue: Missing Sign in with Apple option Resolution: Added Sign in with Apple as a login option alongside Google Sign-In. The button appears on the login screen and follows Apple's design guidelines. You can test with the provided demo account or by creating a new account with Apple Sign-In. Changes made in: v1.0.1 (build 2)반려가 이해되지 않는다면:
Thank you for reviewing my app. I believe there may be a misunderstanding regarding [specific issue]: [Explain clearly with screenshots if needed] The functionality exists at: Settings > [specific location] I've added additional detail to the review notes to help locate this feature. -
빨리 재제출하세요
- 재제출은 일반적으로 빠르게 검토됩니다 (24-48시간)
- 업데이트된 리뷰 노트를 포함하여 고친 내용을 설명하세요
- 이전 제출과 관련이 있으면 참고하세요
일반적인 반려 응답
반려: '앱이 런칭 시 충돌합니다'
응답:
I sincerely apologize for the crash. I have identified and fixed
the issue:
Root cause: The app attempted to fetch data before network
initialization completed, causing a null reference exception.
Fix: Implemented proper async initialization with error handling
and offline mode. The app now gracefully handles network issues.
Testing: Verified on iPhone 12 (iOS 17), iPhone 14 Pro (iOS 17.1),
tested with WiFi, cellular, and airplane mode.
Build version: 1.0.2 (build 3)
거절: "개인 정보 정책이 없습니다."
응답:
Thank you for the feedback. I have added the privacy policy:
URL: https://myapp.com/privacy-policy
Location in app: Settings > Privacy Policy (tappable link)
Also added to: App Store Connect > App Information > Privacy Policy URL
The privacy policy covers all data collection as disclosed in the
Privacy Nutrition Labels.
거절: "4.2 - 최소 기능성에 부합하지 않습니다."
이건 더 어려운 문제입니다. 앱으로 등록하기에 충분한 기능을 제공하지 않습니다. 응답:
Thank you for the feedback. I'd like to clarify the app's
functionality:
Core Features:
1. [Feature 1 with specific details]
2. [Feature 2 with specific details]
3. [Feature 3 with specific details]
The app provides significant utility beyond a simple website by:
- Offline functionality for [specific feature]
- Native camera integration for [specific feature]
- Push notifications for [specific feature]
- Device hardware access for [specific feature]
Test account credentials have been provided to demonstrate all
features. Please let me know if you need additional clarification.
승인 후 최적화 방법
축하합니다! 앱이 승인되었습니다. 그 상태를 유지하기 위한 방법입니다.
런칭 후 모니터링
관심 있어야 하는 주요 지표:
- 크래시율 (1% 이하로 유지하세요)
- ANR율 (안드로이드 - 0.5% 이하로 유지하세요)
- 앱 스토어/플레이 스토어 평점
- 리뷰 내용 (모든 리뷰에 응답하기)
- 사용자 보고한 버그
사용할 수 있는 도구:
- 파이어베이스 크래시 리포트
- 앱 스토어 커넥트 분석
- 구글 플레이 콘솔 비타
- 센트리 또는 유사한 오류 추적
업데이트 지침
업데이트 제출 시:
- 초기 제출과 마찬가지로 철저히 테스트하기
- UI가 크게 변경된 경우 스크린샷 업데이트
- 데이터 수집이 변경된 경우 개인 정보 레이블 업데이트
- 새로운 기능에 대한 명확한 '무엇이 새로운가' 설명을 제공하세요
- 주요 변경 사항에 대한 단계적 롤아웃을 고려하세요
준수
연간 요구 사항:
- 매년 다시 인증받아야 하는 안드로이드 콘텐츠 등급을 갱신하세요
- 사용자 정보 보호 정책을 갱신하세요 (사용자 정보 보호 정책이 변경될 경우)
- 콘텐츠가 변경될 경우 콘텐츠 등급을 갱신하세요
- 제3자 SDK를 준수하는지 감사하세요
준수:
- 지침 변경 사항에 대한 최신 정보를 유지하세요
- 애플/구글 개발자 뉴스레터에 가입하세요
- 개발자 커뮤니티에 참여하세요
- 애플 스토어/플레이 스토어 정책 블로그를 참조하십시오.
자원 및 추가 읽기
공식 문서
애플:
구글:
커뮤니티 자원
- r/androiddev - 안드로이드 개발자 커뮤니티
- r/iOSProgramming - iOS 개발자 커뮤니티
- Stack Overflow - 기술 질문
- Indie Hackers - 독립 개발자 커뮤니티
개인 정보 보호 정책 도구
앱 리뷰에 도움이 필요하세요?
앱 리뷰를 처음부터 성공적으로 통과하기 위해 압도적인 감정을 느끼거나 전문가의 안내가 필요하다면, 우리는 도와드릴 것입니다!
우리 팀과 상담 전화 예약하기 개인화된 도움을 위해:
- 앱 스토어 및 플레이 스토어 리뷰 준비
- 개인정보 보호정책 및 법적 문서 검토
- Sign in with Apple 구현
- 테스트 전략 및 테스터 모집
- 리뷰 노트 준비
- 반려 응답 및 항소
- 제출 앱 프로세스 완료
우리는 수백 명의 개발자들이 앱 리뷰 프로세스를 성공적으로 탐색하는 데 도움을 주었으며, 여러분의 주말을 절약할 수 있습니다.
결론
첫 번째 앱을 제출하는 것은 두려울 수 있지만, 적절한 준비가 있으면 첫 번째 시도에서 리뷰를 통과할 수 있습니다. 다음의 중요한 점을 기억하세요:
- 이른 시작: 특히 안드로이드 - 12명의 테스터를 최소 3주 전에 계획된 출시일 전에 모집하세요
- 개인 정보 우선: 개인 정보 정책이 준비되어 있어야 하며, 데이터 처리 방침이 정확하게 반영되어야 합니다.
- 애플 로그인: iOS에서 사용하는 사회 로그인 시, Sign in with Apple을 포함해야 합니다.
- 적극적인 테스트: 실제 장치에서 테스트하고, 네트워크가 좋지 않은 경우, 권한이 거부된 경우 테스트하세요
- 정직하게 말하세요: 정확한 메타데이터와 개인 정보 공개는 거부와 법적 문제를 방지합니다
- 상세한 리뷰 노트: 리뷰어들이 앱을 빠르게 이해할 수 있도록 도와줍니다
현재 Android 테스트 요구 사항은 프로세스를 더 오래 지속하지만, 결국은 더 나은 앱과 출시 후 문제가 적은 결과를 낳습니다. Android 제출에 3-4주 더 계획을 세우면 성공을 위한 좋은 입장에 서게 될 것입니다.
앱 출시를 위한 좋은 행운을 빕니다! 기억하세요, 심사에서 거부당해도 그것은 학습의 기회입니다. 성공적인 앱은 대부분 심사에서 승인되기 전에 여러 번의 심사를 거칩니다.
혼자서 가고 싶지 않나요? 상담을 예약하세요 우리의 전문가들이 프로세스를 안내해 드리겠습니다.
__CAPGO_KEEP_0__의 라이브 업데이트 솔루션 승인된 앱에 라이브 업데이트 구현을 도와드릴 필요가 있나요? 앱 스토어 심사가 없는 앱 업데이트에 대한 무결성을 보장하는 Capgo의 라이브 업데이트 솔루션을 확인하세요. for seamless app updates without app store review.
2026년 iOS와 Android를 위한 The Complete First-Time App Review Guide에서 계속 진행하세요.
만약에 사용 중이라면 The Complete First-Time App Review Guide for 2026 - iOS and Android 계획서와 보안 및 준수성을 위해 연결하세요. 암호화 암호화 구현 세부 사항에 대해 준수 준수 구현 세부 사항에 대해 Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로에 대해 Capgo 보안 Capgo 보안의 제품 워크플로에 대해 Capgo 신뢰 센터 Capgo 신뢰 센터의 제품 워크플로에 대해.