편집자
앱 스토어 리뷰 통과하는 방법: 2025년 IAP 앱 스토어와 구글 플레이에 앱을 승인받는 것은 어려울 수 있습니다. 특히 IAP와 구독을 implement하는 경우, 2025년 stricter guidelines로 인해 리뷰어들이 무엇을 찾는지 이해하는 것이 중요합니다. 이 포괄적인 가이드는 첫 번째 제출에서 리뷰 통과를 위해 필요한 모든 것을 다룹니다. 세부한 설정 지침이 필요합니다. | 다음의 완전한 가이드를 확인하세요:
iOS 앱 스토어 리뷰
안드로이드 플레이 스토어 리뷰 애플의 앱 스토어 리뷰 지침 그리고 구글 플레이의 수익화 정책, 2025년 리젝 이유 중 가장 위험한 것들입니다.
- 가격이 불분명합니다 (2025년 리젝 이유 42%)
- 구독 약관이 누락되거나 혼동스럽습니다 (31%)
- 위장 UI 패턴 (18%)
- 개인 정보 보호 정책 위반 (9%)
이러한 함정들을 피하는 방법에 대해 자세히 알아보겠습니다.
iOS 앱 스토어 요구 사항
📖 iOS 완전한 가이드: 설치 방법을 완벽하게 설정하려면 애플 스토어 리뷰 가이드
1. 투명한 가격 공개
애플은 정확한 가격 공개를 요구합니다 앞서 구매 버튼에 가격을 명확하게 표시합니다. 이것은 협상할 수 없습니다.
애플이 원하는 것은:
- 가격이 명확하게 표시되야 합니다: “월 $9.99”
- 결제 주기가 미리 알려져야 합니다
- 사용자가 돈을 지불하는 데 무엇을 얻는지
- 결제가 언제 발생하는지
- 취소 방법이 표시되어야 합니다

일반적인 오류: 가격을 사용자가 '구독' 버튼을 탭할 때까지 숨기거나, 가격을 미세한 글씨로만 표시하는 경우.
해결:
// Example: Compliant subscription display
<div className="subscription-card">
<h2>Premium Plan</h2>
<p className="price">$9.99/month</p>
<ul>
<li>✓ Ad-free experience</li>
<li>✓ Unlimited cloud storage</li>
<li>✓ Priority support</li>
</ul>
<p className="terms">
Renews automatically. Cancel anytime in Settings.
</p>
<button>Subscribe Now</button>
</div>
가격 일관성 규칙: 모든 가격은 다음과 같은 곳에서 일관해야 합니다.
- 앱 스토어 목록
- 인앱 구매 화면
- 구독 관리
- 마케팅 자료
1달러의 오차마저 자동으로 거절된다.
2. 구독 계획 제시
애플은 비싼 계층을 밀어내는 '다크 패턴'을 사용하는 앱을 플래그합니다.
필수:
- 모든 구독 계층을 동일하게 표시하세요.
- 기본적으로 프리미엄 옵션을 선택하지 마세요.
- 기능 비교가 명확하세요.
- 비싼 옵션보다 저렴한 대안을 쉽게 찾을 수 있도록 하세요.
금지:
- 연간 계획으로 자동으로 기본값을 설정하지 마세요.
- 월별 옵션을 숨기지 말고 추가 탭을 눌러야만 볼 수 있도록 하지는 마세요.
- false 긴급성을 만들기 위해 카운트다운 타이머를 사용하지 마세요.
- '마지막 3 개의 자리!'와 같은 가짜 부족함을 사용하지 마세요.
3. 구매를 복원하는 기능을 구현하세요.
모든 IAP 앱은 구입한 제품을 복원하는 버튼을 제공해야 합니다. 이 버튼은 지원 연락처가 필요하지 않아도 작동해야 합니다. 더 많은 정보는我们的 시작 가이드.
Implementation:
import { NativePurchases } from '@capgo/native-purchases';
async function restorePurchases() {
try {
const { customerInfo } = await NativePurchases.restorePurchases();
if (customerInfo.activeSubscriptions.length > 0) {
showSuccess('Purchases restored!');
unlockPremiumFeatures();
} else {
showInfo('No previous purchases found.');
}
} catch (error) {
showError('Restore failed. Please try again.');
}
}
4. 개인 정보 보호 준수 (5.1.1 절)
2025년은 개인 정보 보호 강화의 해입니다. 애플은 이제 다음과 같은 엄격한 개인 정보 보호 규정을 요구합니다.
모든 권한에 대해:
- 명확한 설명 앞서 요청
- 특정 사용 사례 (일반적이지 않음)
- 데이터가 저장/공유되는 방식
- 그것이 선택적이면
애플 스토어 리뷰를 통과하는 방법: IAP Info.plist entries:
<key>NSCameraUsageDescription</key>
<string>Camera access lets you scan product barcodes for quick upgrades. Photos are never uploaded.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Location shows relevant local content in your Premium subscription.</string>
2025년 1위 거부 사유는 정확하지 않은 개인 정보 레이블입니다.
Android Google Play Requirements
📖 전체적인 Android 가이드: 설정 지침을 완전히 확인하려면我们的 Android Play Store Review 가이드
1. 필수 Google Play Billing
디지털 제품 (구독, 앱 내 콘텐츠)에는 Google Play Billing을 사용해야합니다. 대체 결제 방법은 거부될 것입니다. 디지털 제품 (Play Billing 사용 필수): __CAPGO_KEEP_0__
__CAPGO_KEEP_1__
- 기능 구독
- 앱 내 결제 통화
- 디지털 콘텐츠 (전자책, 음악)
- 프리미엄 언락
물리적 상품 (Play Billing 사용 불가):
- 실제 물품
- 물리적 서비스
- 비영리 기부
native-purchases와 함께 구현:
완전한 안드로이드 설정을 위해 참조하십시오. 안드로이드 샌드박스 테스트 그리고 구독 설정.
import { NativePurchases } from '@capgo/native-purchases';
// Automatically uses Google Play Billing on Android
await NativePurchases.configure({
apiKey: 'your_api_key'
});
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['premium_monthly']
});
2. 투명한 자동 갱신
구글은 구독이 자동 갱신되는 것을 명확하게 알리기 위해 다음을 요구합니다:
- 자동 갱신 전 요금 청구 알림
- 요금 알림
- 취소하기에 쉬운 접근
준수 UI:
<div className="subscription-terms">
<p>Subscription renews automatically at $9.99/month</p>
<p>Cancel anytime in Google Play Subscriptions</p>
<p>Next billing date: February 15, 2025</p>
<button onClick={openManagement}>
Manage in Google Play
</button>
</div>
3. 개인 정보 보호 정책 요구 사항
IAP 앱에 필수:
- Play 콘솔에 개인 정보 보호 정책 URL
- 앱 내 개인 정보 보호 정책 링크
- 정확한 데이터 안전 섹션 선언
데이터 안전성 선언:
- 구매 기록 수집
- 전자 메일 주소 (영수증)
- 기기 ID (위조 방지)
- 분석 데이터

두 플랫폼 모두에서 거부 사유
1. 메타데이터 불일치
왜 실패하는가:
- 스크린샷은 현재 버전의 기능이 아닌 것을 보여준다
- 설명은 존재하지 않는 기능을 약속한다
- 가격은 앱 내와 다르다

예방:
- 모든 제출에 대한 스크린샷을 업데이트 하세요
- 설명이 실제 기능과 일치하도록 하세요
- 모든 주장은 정확한지 테스트하세요
- 기존 홍보 문구를 제거하세요
2. 유도적 마케팅:
자동으로 거절되는 트리거:
- “1위 앱” 증명이 없는 경우
- “무제한”에 숨겨진 제한이 있는 경우
- 가짜 리뷰 또는 평점
- 경쟁사 비방

최선의 방법: 정확하고 사실에 기반한 표현을 사용하세요:
- ✓ "50,000명 이상의 사용자와 함께하세요"
- ✗ "세계에서 가장 좋은 앱"
- ✓ "연간 계획으로 최대 30%까지 절약하세요"
- ✗ "한정 시간 동안의 특별한 행사!"
3. 구매 흐름이 깨진 경우
제출하기 전에 테스트하세요:
- 제품이 올바르게 로드됩니다.
- 구매가 성공적으로 완료됩니다.
- 프리미엄 기능이 즉시 활성화됩니다.
- 구매를 복원하는 방법이 작동합니다.
- 오류 메시지는 사용자 친화적입니다.
- 네트워크 실패가 부드럽게 처리됩니다.
// Comprehensive error handling
async function handlePurchase(productId: string) {
try {
const { customerInfo } = await NativePurchases.purchaseProduct({
productIdentifier: productId
});
if (customerInfo.entitlements.active['premium']) {
unlockPremiumFeatures();
}
} catch (error: any) {
switch (error.code) {
case 'USER_CANCELLED':
// Silent - user backed out
break;
case 'ITEM_ALREADY_OWNED':
await NativePurchases.restorePurchases();
break;
case 'NETWORK_ERROR':
showError('Check your connection and try again.');
break;
default:
showError('Purchase failed. Please try again.');
}
}
}
제출 전 검사 목록

이 검사 목록을 제출하기 전에 항상 사용하세요. 자세한 테스트 절차에 대해:
- iOS 테스트: iOS 샌드박스 테스트 가이드
- Android 테스트: Android 샌드박스 테스트 가이드
테스트
- 모든 구독 계층을 테스트하세요.
- 구매 후 리뷰를 통과하는 방법
- 무료 시범판이 올바르게 작동하는지 확인하세요
- 소개 제안을 테스트하세요
- 구매를 복원하는 것이 작동하는지 확인하세요
- 다양한 기기에서 테스트하세요
테스트 계정 및 샌드박스 계정이 작동하는지 확인하세요
- 가격 및 약관
- 모든 플랫폼에서 가격이 일치하는지 확인하세요
- 구독 약관이 명확하게 표기되어 있는지 확인하세요
- 취소 안내가 표시되어 있는지 확인하세요
- 결제 주기 표시되어 있는지 확인하세요
무료 시범판의 기간이 정확한지 확인하세요
- 개인 정보 보호 정책은 앱 스토어에서 연결됩니다.
- 개인 정보 보호 정책은 앱 내에서 접근할 수 있습니다.
- 모든 권한은 정당화됩니다.
- iOS의 Info.plist 설명이 명확합니다.
- Android의 데이터 안전이 완료되었습니다.
메타데이터
- 스크린샷은 현재 버전을 보여줍니다.
- 설명은 기능과 일치합니다.
- 장치에 텍스트가 없습니다.
- 나이 등급이 정확합니다.
- 모든 주장은 테스트 가능합니다.
Code 품질
- No launch 시 발생하는 충돌이 없습니다.
- 설명된대로 모든 기능이 작동합니다.
- 에러 처리가 구현되었습니다.
- 로딩 상태가 표시됩니다.
- 네트워크 오류가 처리됩니다.
리뷰 타임라인 예상

iOS:
- 표준: 24-48시간
- 피크 기간: 3-5일
- 주말: 리뷰 없음
- 급진화: 심각한 버그에 대한 비용이 부과됩니다.
Android:
- 초기: 7일 평균
- 업데이트: 일반적으로 빠르다
- 롤링 리뷰: 언제든지 라이브로 가능
- 정책 위반: 즉시 중단 가능
프로 팁: iOS 앱을 월요일부터 수요일까지 제출하여 주말 지연을 피하십시오.
거절된 경우 무엇을 할 것인가

Step 1: 문제를 이해하십시오
- 거절 통지를 신중히 읽으십시오
- 특정 가이드라인을 언급하십시오
- 예시를 확인하세요.
- 피드백에서 패턴을 찾으세요.
2단계: 철저히 수정하세요.
- 원인에 대처하세요, 증상만 해결하지 마세요.
- 수정한 것을 철저히 테스트하세요.
- 모든 변경 사항을 문서화하세요.
- 이전/후 사진을 찍으세요.
3단계: 전문적으로 응답하세요.

iOS 해결 센터:
Thank you for the feedback. I have addressed the issue:
Issue: Subscription pricing not clear upfront
Fix: Added explicit pricing display on subscription screen
showing "$9.99/month" before purchase button. Also added
cancellation instructions on the same screen.
Screenshots showing changes are attached. Test account
provided in App Review Notes.
Android 항의:
Subject: Policy Violation Appeal - [App Name]
I have received notification regarding [Policy X.Y].
Changes made:
1. Updated subscription UI to show all pricing upfront
2. Added clear cancellation instructions
3. Implemented restore purchases functionality
Version [X.Y.Z] addresses all concerns. Test account
credentials provided below for verification.
4단계: 빠르게 재제출하세요.
- 재제출은 더 빠르게 검토됩니다.
- 일반적으로 24시간 이내에 검토됩니다.
- 테스트 계정 포함
- 이전 제출물 참조
2025년 업데이트 및 새로운 요구 사항
iOS 변경 사항
AI 기능성 공개 (새)
- AI 생성 콘텐츠에 레이블을 지정해야 합니다.
- AI 사용 설명
- 콘텐츠 안전성 문서화
강화된 구독 명확성
- 동일한 앱 비교 필요
- 비용이 저렴한 옵션 숨기지 않기
- 업그레이드/다운그레이드 경로 명확히 하기
개인 정보 보호 강화
- 5.1.1 조항 준수 강화
- 데이터 정당성에 대한 더 많은 검토
- 어린이 앱 규정 강화
안드로이드 변경 사항
대안 결제 (지역)
- EEA, 한국에서 허용
- Google Play 옵션 제공해야 함
- 서비스 수수료를 줄였습니다.
구독 API 요구 사항
- 새로운 앱은 monetization.subscriptions API를 사용해야 합니다.
- 기존 결제 API는 deprecated되었습니다.
- 구독 관리를 위한 더 나은 도구
성공을 위한 최적의 방법
1. 올바른 SDK를 사용하십시오.
__CAPGO_KEEP_0__/native-purchases 플러그인은 다음과 같이 두 가지 플랫폼을 모두 올바르게 처리합니다: @capgo/native-purchases 구매 상태를 모두 부드럽게 처리하십시오:
// Single API for iOS and Android
await NativePurchases.configure({
apiKey: 'your_api_key'
});
// Automatically uses correct billing system
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['premium_monthly']
});
// Platform-specific logic handled automatically
await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly'
});
__CAPGO_KEEP_0__
__CAPGO_KEEP_0__
- 사용자 취소 (침묵)
- 네트워크 오류 (재시도 옵션)
- 이미 소유 (복원)
- 제품 unavailable (사용자에게 알리기)
- 결제 대기 (다음에 확인)
3. 명확하게 전달
사용자는 항상 알 수 있어야 합니다:
- 그들이 무엇을 구매하는지
- 그것의 비용
- 그들이 청구될 때
- 취소 방법
- trial 후에 무슨 일이 일어나는지
4. 철저한 테스트
iOS 샌드박스:
- App Store Connect에서 테스트 계정 만들기
- 장치에서 설정 (설정 > 앱 스토어 > 샌드박스)
- 구독 기간이 가속되는 것을 주의하세요
Android 라이선스 테스트:
- Play Console에서 테스트 계정 추가
- ‘구매 테스트’ 알림을 확인하세요
- 실제 요금이 발생하지 않습니다
자원
플랫폼 문서
implementation 지침
상세 검토 지침
전문가 도움 필요?
앱 리뷰에서 막힌다면 또는 직접적인 도움을 필요로 한다면?
우리 팀은 앱 내 구매 구현 및 리뷰 준비를 위한 전용 지원을 제공합니다. 우리와의 상담 전화 예약
- 개인화된 도움을 받기 위해:
- IAP 구현 검토
- 앱 스토어 리뷰 준비
- 제출 전략 지침
- 거절 해결 도움
완전한 설정 및 테스트 지원
우리는 수백 개의 앱이 리뷰 통과에 성공했다고 말할 수 있습니다!
결론
- 2025년 앱 내 구매를 위한 앱 리뷰 통과는 세부 사항에 대한 주의, 명확한 의사소통 및 적절한 구현이 필요합니다. 주요 takeaway는 다음과 같습니다: - 앱 스토어 리뷰 통과를 위한 방법
- 플랫폼 규칙을 따르세요 - 필요한 결제 시스템을 사용하세요
- 적극적으로 테스트하세요 - 리뷰어들이 먼저 발견하지 못하는 문제를 해결하세요
- 명확하게 의사소통하세요 - 사용자는 혼란스러워하지 않아야 합니다
- 문서를 준비하세요 - 테스트 계정 준비가 되어 있어야 합니다
이 안내서를 따라서 native-purchases 플러그인을 사용하면 첫 번째 승인에 대한 기회를 크게 높일 수 있습니다native-purchases 플러그인과 같은 적절한 도구를 사용하면
앱 스토어 리뷰 통과하기: IAP
인앱 구매 구현에 도움이 필요하신가요? 자세한 설명을 확인하세요 전문적인 문서를 확인하세요 앱 스토어 리뷰 통과하기: IAP 2025
앱 스토어 리뷰 통과하기: IAP 2025을 사용하시면 스토어 승인 및 배포를 계획할 수 있습니다. @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-in-app-review
앱 스토어 리뷰 통과하기: IAP 2025을 사용하시면 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-in-app-review 앱 스토어 리뷰 통과하기: IAP 2025을 사용하시면 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-in-app-review 앱 스토어 리뷰 통과하기: IAP 2025을 사용하시면 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-in-app-review 앱 스토어 리뷰 통과하기: IAP 2025을 사용하시면 @capgo/capacitor-in-app-review 앱 스토어 리뷰 통과하기: IAP 2025을 사용하시면 @capgo/capacitor-in-app-review 앱 스토어 리뷰 통과하기: IAP 2025을 사용하시면 @capgo/capacitor-in-app-review for the native capability in Using @capgo/capacitor-in-app-review, @capgo/capacitor-native-market for the implementation detail in @capgo/capacitor-native-market, Using @capgo/capacitor-native-market for the native capability in Using @capgo/capacitor-native-market, and Capacitor OTA Updates: App Store Approval Guide for the practical context in Capacitor OTA Updates: App Store Approval Guide.