안드로이드 Play Store IAP 리뷰 지침
설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함한 설정 지시를 복사하세요.
Google Play에서 Android 앱을 승인받으려면 Google의 정책을 준수해야 하며, 특히 인앱 구매 및 구독이 있는 앱은 더욱 그렇습니다. 이 안내서에서는 리뷰를 성공적으로 통과하기 위해 필요한 모든 것을 다룹니다.
__CAPGO_KEEP_0__
성공적으로 리뷰를 통과하기 위해 필요한 모든 것을 다룹니다.-
Release Path That Works
Release Path That Works
.aab구글 플레이 앱을 승인받기 위해 Android 앱을 빌드하는 방법새로운 Google Play 앱은 Android 앱 버킷 (
versionCode)으로 업로드해야 하며, 시드 로드된 디버그 APK는 업로드하지 마십시오.
-
Play Store에서 앱을 업로드할 때마다
Android 앱 버킷 흐름 Play Console에서 앱 레코드를 생성합니다.그런 다음, 홈 > 앱 만들기언어, 앱/게임 종류, 무료/유료 상태, 지원 이메일, 그리고 필수 선언을 수락하세요.
유료/무료 설정을 신중하게 선택하세요. 구글은 유료 앱을 무료로 변경할 수 있지만, 무료로 제공된 앱은 유료로 변경할 수 없습니다.

-
앱 내용과 스토어 목록 완료
제작 전 검토 이전에, 다음 Play Console 선언을 완료하세요:
- 개인 정보 보호 정책
- 광고
- 앱 접근
- 대상 청중 및 콘텐츠
- 콘텐츠 등급
- 데이터 안전
- __CAPGO_KEEP_0__
-
Play-설치 테스트 트랙을 실행하세요
__CAPGO_KEEP_1__ __CAPGO_KEEP_2__ 빠른 QA를 위해 개발자 계정이 개인 계정으로 생성된 경우, 11월 13, 2023 이후에 생성된 경우, 최소 12명의 테스터가 14일 연속으로 참여한 폐쇄 테스트를 완료해야 합니다. Play 콘솔 내부 테스트 결제 종합 테스트

-
__CAPGO_KEEP_3__
Play에서 제품이 올바르게 로드되는지 확인하세요
- __CAPGO_KEEP_4__
- 구매 시트는 테스트 구매 라이선스 테스터용 배너
- 구매 후 Entitlements가 활성화됩니다
- 구매 및 구독 관리 흐름이 작동합니다
구글 플레이 결제 요구 사항
구글 플레이 결제 요구 사항구글 플레이 결제 시스템은 필수입니다
구글 플레이 결제 시스템은 필수입니다디지털 상품 및 서비스를 판매할 때 는 구글 플레이의 결제 시스템을 사용해야합니다
디지털 상품 (Play Billing 사용 필수):
- 프리미엄 기능에 대한 구독
- 인앱 화폐 또는 크레딧
- 전자책, 음악, 비디오 등 디지털 콘텐츠
- 게임 업그레이드 및 파워업
- 앱 언락 및 프리미엄 티어
물리적 상품 (Play Billing 사용 불가):
- 물리적 상품
- 실세계 서비스
- 비영리 단체에 대한 일회금 기부
:::note 구독 설정
Play Console에서 Android 구독을 구성하려면 현재 구독 -> 기본 계획 -> 제안 model. In native-purchases, planIdentifier.
:::
기본 계획 ID를
자연스러운 구입 구현import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Ensure billing is available on the deviceconst { isBillingSupported } = await NativePurchases.isBillingSupported();if (!isBillingSupported) throw new Error('Google Play Billing not available');
// Fetch subscription products (Store data is required—never hardcode pricing)const { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly', 'premium_yearly'], productType: PURCHASE_TYPE.SUBS,});
// Plan identifiers are the Base Plan IDs you create in Google Play Consoleconst transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', planIdentifier: 'monthly-plan', // REQUIRED on Android, ignored on iOS productType: PURCHASE_TYPE.SUBS,});
console.log('Purchase token for server validation:', transaction.purchaseToken);Transparency and Disclosure Requirements
가격 공개Upfront Pricing Disclosure
구글 플레이는 구매 전에 모든 비용에 대한 명확한 공개를 요구합니다:
- 필수 요소:
- 결제 주기 (월, 년 등)
- 구독에 포함된 항목
- 초기 제안의 총 비용
- 요금이 발생할 때

준수하는 UI 예시:
function SubscriptionCard({ product }) { return ( <div className="subscription-card"> <h3>{product.title}</h3>
{/* Show intro offer if available */} {product.introductoryPrice && ( <div className="intro-offer"> <p className="intro-price">{product.introductoryPriceString}</p> <p className="intro-period"> for {product.introductoryPricePeriod} </p> </div> )}
{/* Regular price */} <div className="regular-price"> <p className="price">{product.priceString}</p> <p className="period">per {product.subscriptionPeriod}</p> </div>
{/* Clear description */} <p>{product.description}</p>
{/* Renewal terms */} <p className="terms"> Renews automatically. Cancel anytime in Google Play. </p>
<button onClick={() => handlePurchase(product)}> Subscribe Now </button> </div> );}자동 갱신 고지
자동 갱신 고지 섹션구독이 자동 갱신되기 전에 Google은:
- 갱신이 발생할 것을 명확히 알리는 통지
- 갱신 가격의 nhắc음
- __CAPGO_KEEP_0__에 대한 쉽고 간편한 취소 접근
다양한 플랫폼에서 가격을 명확하게
__CAPGO_KEEP_2__ titled “다양한 플랫폼에서 가격을 명확하게”여러 플랫폼에서 동일한 권한을 판매할 경우, 제품 이름, 청구 기간, 포함된 혜택, 갱신 언어를 일치시켜 사용자가 놀라지 않도록 하십시오.
가격은 세금, 지역 통화, 또는 매장 경제로 인해 달라질 수 있지만, 구매 UI는 절대 숨기거나 Google Play가 청구할 갱신 비용과 다른 비용을 암시하지 않도록 하십시오.
개인 정보 보호 정책 요구 사항
__CAPGO_KEEP_2__ titled “개인 정보 보호 정책 요구 사항”필수 개인 정보 보호 정책
__CAPGO_KEEP_2__ titled “필수 개인 정보 보호 정책”앱에 내결제 기능이 포함되어 있다면, 다음을 수행해야 합니다.
-
Play Store 목록에 링크
- Play Console에 개인 정보 보호 정책 URL 추가
- 공개적으로 접근 가능해야 합니다.
- 앱의 언어와 동일한 언어로 작성해야 합니다.
-
앱 내에서 링크
- 앱 설정에서 개인 정보 보호 정책 표시
- 사용자 데이터를 수집하기 전에 표시해야 합니다.
- 쉽게 발견할 수 있도록 해야 합니다.
예시 Implementation:
function SettingsScreen() { const openPrivacyPolicy = () => { window.open('https://yourapp.com/privacy', '_blank'); };
const openTerms = () => { window.open('https://yourapp.com/terms', '_blank'); };
return ( <div> <h2>Settings</h2>
<button onClick={openPrivacyPolicy}> Privacy Policy </button>
<button onClick={openTerms}> Terms of Service </button>
<button onClick={() => NativePurchases.manageSubscriptions()}> Manage Subscriptions </button> </div> );}데이터 안전성 섹션
데이터 안전 섹션Google Play에서는 데이터 안전 섹션에서 자세한 설명이 필요합니다:
IAP 앱의 경우, 다음을 선언해야 합니다:
- 구매 기록 수집
- 영수증을 위한 이메일 주소
- 위조 방지를 위한 기기 ID
- 결제 정보 처리
- 분석 데이터 수집
데이터 안전 섹션은 법적 의무입니다. 정확하지 않은 선언은 앱 제거로 이어질 수 있습니다.
앱 콘텐츠 선언
Section titled “앱 콘텐츠 선언”Google Play 리뷰는 단순히 바이너리만을 위한 것이 아닙니다. 프로덕션 릴리즈 전에 선언을 완료해야 합니다. 정책 및 프로그램 > 앱 콘텐츠.
주의 깊게 검토해야 할 최소 세트:
- 개인 정보 보호 정책: Play 콘솔에서 공유할 수 있는 공개 URL, 필요 시 앱 내 진입점
- 광고: 앱이 광고를 포함하는지 선언
- 앱 접근: 검토자에게 작업을 위한 자격 증명 또는 앱 내에서 가드된 화면에 대한 명확한 테스트 경로를 제공
- 대상 청중 및 콘텐츠: 앱의 실제 청중과 일치
- 콘텐츠 등급: IARC 설문조사 완료하여 앱이 등급이 없는 것으로 표시되지 않도록 하기
- 데이터 안전: 정확한 데이터 수집, 공유 및 보안 정책을 선언하세요
일반적인 거절 사유
일반적인 거절 사유1. 결제 구현 누락 또는 오류
1. 결제 구현 누락 또는 오류왜 실패하는가:
- 구글 플레이 비リング을 사용하지 않는 디지털 상품
- 구글 플레이 비リング을 사용하지 않는 디지털 상품
- 구글 플레이 비リング을 사용하지 않는 디지털 상품
예방대책:
// ✅ Correct: Use native-purchases (uses Google Play Billing)await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', planIdentifier: 'monthly-plan', productType: PURCHASE_TYPE.SUBS,});
// ❌ Wrong: Custom payment processor for subscriptions// await CustomPayment.charge(user, 9.99);2. 가격이 불분명하거나 숨겨진 비용
2. 가격이 불분명하거나 숨겨진 비용실패의 이유:
- 구매를 클릭하기 전에 가격만 표시
- 추가 비용이 미리 알리지 않음
- 구독 약관이 불분명함
예방대책:
function PurchaseScreen({ product }) { return ( <div> {/* Show ALL costs upfront */} <h2>Premium Subscription</h2>
<div className="pricing"> <p className="price">{product.priceString}/month</p> <p className="taxes">Taxes may apply based on location</p> </div>
<div className="features"> <h3>Includes:</h3> <ul> <li>Ad-free experience</li> <li>Unlimited cloud storage</li> <li>Priority support</li> </ul> </div>
<div className="terms"> <p> Subscription renews automatically unless cancelled at least 24 hours before the end of the current period. </p> <p> Manage or cancel in Google Play Subscriptions. </p> </div>
<button onClick={handlePurchase}> Start Subscription </button> </div> );}3. 유혹적인 구독 패턴
3. 유혹적인 구독 패턴 섹션 제목왜 실패하는가:
- 고급 옵션을 미리 선택하는 것
- 비싼 대안을 숨기는 것
- 구독 취소가 어려운 것
- 위기감을 조성하는 것 ('마지막 3 개의 자리!' )


예방책:
- 모든 구독 계층을 동일하게 표시
- 취소가 명확하고 접근성이 좋은지 확인하세요
- 다운타임 타이머나 가짜 부족감을 피하세요
- 비싼 옵션을 밀어붙이기 위해 어두운 패턴을 사용하지 마세요
4. 테스트가 미완성인 경우
제목: 4. 테스트가 미완성인 경우실패하는 이유:
- 구매 시 앱이 충돌하는 경우
- 상품이 로드되지 않는 경우
- 구매 확인이 표시되지 않는 경우
- 결제 후 프리미엄 기능이 활성화되지 않는 경우
- 사이드 로드 빌드에서만 테스트가 진행된 경우, 플레이 스토어에서 설치한 빌드에서 테스트를 진행하지 않은 경우
예방책:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Comprehensive testing before submissionasync function testPurchaseFlow() { try { // 1. Test product loading const { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly', 'premium_yearly'], productType: PURCHASE_TYPE.SUBS, }); console.log('✓ Products loaded:', products.length);
// 2. Test purchase flow const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', planIdentifier: 'monthly-plan', productType: PURCHASE_TYPE.SUBS, }); console.log('✓ Purchase completed', transaction.transactionId);
// 3. Verify entitlements const { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS, }); if ( purchases.some( (purchase) => purchase.productIdentifier === 'premium_monthly' && ['PURCHASED', '1'].includes(purchase.purchaseState ?? '') && purchase.isAcknowledged, ) ) { console.log('✓ Premium features unlocked'); }
// 4. Test restore await NativePurchases.restorePurchases(); console.log('✓ Restore works');
} catch (error) { console.error('✗ Test failed:', error); }}5. 개인정보 보호 정책 위반
5. 개인정보 보호 정책 위반 섹션왜 실패하는가:
- 앱에 개인정보 보호 정책 링크가 없을 때
- 앱에서 개인정보 보호 정책 접근 불가
- 데이터 수집이 공개되지 않을 때
- 데이터 안전 섹션의 오류
예방책:
- 앱 스토어 목록에 개인정보 보호 정책 추가
- 앱 설정에서 링크 포함
- 데이터 안전 섹션을 정확히 작성
- 새로운 데이터 수집 시 업데이트 정책
대안 결제 프로그램
대안 결제 프로그램구글의 대안 결제 프로그램은 지역에 따라 다르고 변경될 수 있습니다. 표준 구글 플레이 결제 외에 다른 것을 사용하려면, 구현하기 전에 Play Console에서 정확한 시장 적합성, 필요한 API, 공개 언어를 확인하세요.
구독 관리
대안 결제 프로그램쉬운 취소
사용자는:__CAPGO_KEEP_0__
- __CAPGO_KEEP_0__ 쉽게 활성 구독을 확인하세요
- __CAPGO_KEEP_1__ 지원에 연락하지 않고 취소하세요
- 취소가 유효할 때 알 수 있습니다
Implementation:
import { NativePurchases } from '@capgo/native-purchases';
function ManageSubscriptionButton() { const openManagement = async () => { try { // Opens Google Play subscription management await NativePurchases.manageSubscriptions(); } catch (error) { // Fallback to direct URL const playStoreUrl = 'https://play.google.com/store/account/subscriptions'; window.open(playStoreUrl, '_blank'); } };
return ( <button onClick={openManagement}> Manage Subscription in Google Play </button> );}취소 기간
취소 기간 제목 ‘취소 기간’필수 공개 정보:
- 취소가 유효할 때 언제인가요?
- 사용자가 기간이 끝날 때까지 접근을 유지할까요?
- 부분 환불이 가능할까요?
function CancellationInfo() { return ( <div className="cancellation-info"> <h3>Cancellation Policy</h3> <ul> <li>Cancel anytime in Google Play</li> <li>Access continues until end of billing period</li> <li>No refunds for partial periods</li> <li>Resubscribe anytime to regain access</li> </ul>
<button onClick={() => NativePurchases.manageSubscriptions()}> Manage in Google Play </button> </div> );}[__CAPGO_KEEP_0__] 제출 전 검사 목록
제출 전 검사 목록 섹션 제목
-
결제 구현 확인
- Google Play Billing (native-purchases)을 사용하여
- Play Console에서 생성한 모든 구독 제품
- Play Console에서 기본 계획 및 제안이 올바르게 구성되어 있는지 확인
- Play Console에서 제품이 활성화 및 게시되어 있는지 확인
- 모든 목표 국가에 대한 가격이 설정되어 있는지 확인
-
구독 구매 흐름 테스트
- 라이선스 테스트 계정 생성
- Play 테스트 트랙에서 빌드 설치
- 각 구독 계층을 테스트하세요
- 제품이 올바르게 로드되는지 확인하세요
- 구매 완료 테스트
- 구매 테스트 구매 테스트 구매 배너가 나타나는지 확인하세요
- 프리미엄 기능이 잠금 해제되는지 확인하세요
- 구독 복원 테스트
- 다양한 장치에서 테스트
-
모든 복사본을 검토하세요
- 구매 전에 가격이 명확하게 표시되는지 확인하세요
- 전체 비용이 구매 전에 공개되는지 확인하세요
- 구독 약관이 명확합니다
- 취소 절차가 설명되어 있습니다
- 위장 광고 없음
-
앱 콘텐츠 및 개인 정보
- Play Console에서 개인 정보 정책 연결
- 앱 내에서 개인 정보 정책 접근 가능
- 광고 선언 완료
- 앱이 게이트드라면 앱 접근 방법 추가
- 데이터 안전 섹션 정확하게 완료
- 권한이 정당화되고 문서화
-
콘텐츠 등급 및 대상
- 콘텐츠 등급 설문조사 완료
- 대상 청중과 콘텐츠 섹션 완료
- 평점이 실제 콘텐츠와 일치
- 설문조사에서 앱 내 구매를 선언
-
스토어 목록 준비
- 앱 설명이 정확
- 짧은 설명은 80자 이내
- 전체 설명은 4000자 이내
- 최소 2개의 전화 스크린샷 업로드
- 1024x500 피처 그래픽 업로드
- 스크린샷은 현재 버전을 보여줍니다
- 필요한 모든 자산이 업로드
리뷰 타임라인
리뷰 타임라인 섹션신규 개인 계정에 대한 프로덕션 접근: __CAPGO_KEEP_0__ 첫 번째 프로덕션 리뷰: __CAPGO_KEEP_1__ 업데이트: __CAPGO_KEEP_2__ appeals: __CAPGO_KEEP_3__
:::tip Rolling Reviews 애플과 달리 구글은 앱을 지속적으로 리뷰합니다. 앱은 리뷰 기간 중에 언제든지 출시될 수 있으며, 고정된 시간에 출시되지 않습니다. :::
제출하기 전에 테스트
테스트하기 전에 제출하는 섹션라이선스 테스트
라이선스 테스트 섹션 제목-
테스트 계정 추가:
- 플레이 콘솔로 이동
- 설정 > 라이선스 테스트
- 테스트 계정으로 Gmail 추가
-
테스트 환경에서 테스트:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Test purchases with license test accountasync function testInSandbox() { const { isBillingSupported } = await NativePurchases.isBillingSupported(); if (!isBillingSupported) { console.error('Billing not supported in this environment'); return; }
// Fetch products (returns test pricing when using a license tester) const { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly'], productType: PURCHASE_TYPE.SUBS, });
console.log('Test products:', products);
// Make test purchase (no charge) const transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', planIdentifier: 'monthly-plan', productType: PURCHASE_TYPE.SUBS, });
console.log('Test purchase complete:', transaction.transactionId);}- 테스트 배너 확인:
- 테스트 계정으로 구매 시
- '테스트 구매' 알림을 볼 수 있습니다
- 실제 요금이 발생하지 않습니다
__CAPGO_KEEP_0__
__CAPGO_KEEP_1____CAPGO_KEEP_2__
- __CAPGO_KEEP_3__ 내부 및 폐쇄 테스트 트랙 내부 및 폐쇄 테스트 트랙 섹션 제목 출시 전: __CAPGO_KEEP_4__
- 빠른 QA를 위해 내부 테스트 트랙을 만들거나
.aabrộng범위한 테스트를 위해 폐쇄 테스트 트랙을 만듭니다. - __CAPGO_KEEP_5__를 업로드하고 테스트 릴리스를 공유합니다.
- 테스터 이메일 주소 추가 및 옵트인 링크 공유합니다. 테스터는 Google Play에서 빌드를 설치합니다.
- 구매 흐름이 Play 설치된 빌드에서 종단에서 종단으로 작동하는지 확인하십시오.
- 2023년 11월 13일 이후에 개인 개발자 계정이 생성된 경우, 최소 12명의 테스터가 14일 연속으로 폐쇄 테스트에 동의되어 있어야 프로덕션에 신청할 수 있습니다.
Google Play 결제를 확인하기 위해 Play 설치된 테스트 빌드 대신 시드 로드된 디버그 빌드는 대체가 될 수 없습니다.
자연스러운 구매
자연스러운 구매모든 구매 상태를 처리하십시오.
모든 구매 상태를 처리하십시오.import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
async function handlePurchase(productId: string, planIdentifier?: string) { try { setLoading(true);
const transaction = await NativePurchases.purchaseProduct({ productIdentifier: productId, planIdentifier, productType: planIdentifier ? PURCHASE_TYPE.SUBS : PURCHASE_TYPE.INAPP, });
console.log('Purchase token:', transaction.purchaseToken ?? transaction.receipt);
// Success - check entitlements from the store const { purchases } = await NativePurchases.getPurchases({ productType: planIdentifier ? PURCHASE_TYPE.SUBS : PURCHASE_TYPE.INAPP, });
const isOwned = purchases.some( (purchase) => purchase.productIdentifier === productId && (purchase.purchaseState === 'PURCHASED' || purchase.purchaseState === '1') && purchase.isAcknowledged, );
if (isOwned) { unlockPremiumFeatures(); showSuccess('Premium activated!'); }
} catch (error: any) { // Handle specific error cases switch (error.code) { case 'USER_CANCELLED': // User backed out - no error needed console.log('Purchase cancelled'); break;
case 'ITEM_ALREADY_OWNED': // They already own it - restore instead showInfo('You already own this! Restoring...'); await NativePurchases.restorePurchases(); break;
case 'ITEM_UNAVAILABLE': showError('This subscription is currently unavailable. Please try again later.'); break;
case 'NETWORK_ERROR': showError('Network error. Please check your connection and try again.'); break;
default: showError('Purchase failed. Please try again.'); console.error('Purchase error:', error); } } finally { setLoading(false); }}구매를 복원하십시오.
구매를 복원하십시오.import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
function RestorePurchasesButton() { const [loading, setLoading] = useState(false);
const handleRestore = async () => { setLoading(true);
try { await NativePurchases.restorePurchases();
const { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS, });
const hasSubscription = purchases.some( (purchase) => purchase.productType === 'subs' && purchase.isAcknowledged, );
if (hasSubscription) { unlockPremiumFeatures(); showSuccess('Subscriptions restored!'); return; }
// Check one-time unlocks if needed const { purchases: iaps } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.INAPP, }); const hasInApp = iaps.some((purchase) => purchase.productIdentifier === 'premium_unlock');
if (hasInApp) { unlockPremiumFeatures(); showSuccess('Previous purchases restored!'); return; }
showInfo('No previous purchases found.'); } catch (error) { showError('Failed to restore purchases. Please try again.'); } finally { setLoading(false); } };
return ( <button onClick={handleRestore} disabled={loading}> {loading ? 'Restoring...' : 'Restore Purchases'} </button> );}구독 상태를 확인하십시오.
구독 상태 확인하기import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
async function checkSubscriptionStatus() { try { const { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS, });
const subscription = purchases.find( (purchase) => purchase.productIdentifier === 'premium_monthly' && (purchase.purchaseState === 'PURCHASED' || purchase.purchaseState === '1') && purchase.isAcknowledged, );
if (!subscription) { showPaywall(); return; }
console.log('Subscription active:', { productId: subscription.productIdentifier, expiresAt: subscription.expirationDate, willRenew: subscription.willCancel === false, purchaseToken: subscription.purchaseToken, });
unlockPremiumFeatures(); } catch (error) { console.error('Failed to check subscription:', error); }}앱이 거부되면
앱이 거부된 경우정책 위반 사례
정책 위반 사례결제 정책:
- 구글 플레이 결제를 사용하지 않음
- 허위 구독 약관
- 비밀 비용
사용자 데이터 정책:
- 개인 정보 보호 정책이 누락됨
- 데이터 안전성 선언의 오류
- 권한이 과도한 것
해결 방법
해결 방법 섹션 제목-
위반 통지서를 검토하십시오
- 특정 정책을 읽으십시오
- 구글이 무엇을 지적했는지 이해하십시오
- 제공된 예시를 확인하십시오
-
문제를 해결하십시오
- 원인에 대하여 해결하십시오
- 증상만 해결하는 것이 아닌
- 수정 후 완전히 테스트하십시오. 모든 변경 사항을 문서화하십시오.
-
제출 항의 (필요 시)
Subject: Policy Violation Appeal - [App Name]Dear Google Play Review Team,I have received notification that my app violates [Policy X.Y].I have made the following changes to comply:1. [Specific change made]2. [Specific change made]3. [Specific change made]The updated version [version number] addresses all concerns raised.Test account for verification:Email: test@example.comPassword: TestPass123Thank you for your consideration.
-
재제출 또는 업데이트
- 수정 버전 업로드
- 재검토를 위해 제출
- Play 콘솔에서 상태 모니터링
추가 자료
제목 “추가 자료”전문가의 도움이 필요하세요?
전문가의 도움이 필요하세요?라는 제목의 섹션Play Store 검토를 위한 네비게이션은 복잡할 수 있습니다. 특히 billing compliance, 앱 콘텐츠 선언, 테스트 트랙 설정을 결합해야 할 때입니다. 개인화된 지원이 필요하시면:
Capgo 팀과 상담 전화 예약 다음과 같은 도움을 받을 수 있습니다.
- Play Store 검토를 위한 완벽한 준비
- 테스트 트랙 설정 및 테스터 모집
- IAP 구현 검토
- 데이터 안전 및 개인 정보 보호 준수
- 거부 처리 및 항소
- 완전한 앱 제출 프로세스
Capgo의 전문가들은 수백 개의 앱을 성공적으로 Play Store 제출에 도와주었습니다. 현재 요구 사항을 탐색하는 데 도움이 될 것입니다.
implementation에 도움이 필요하세요?
- Review the Capacitor Native Purchases 문서
- Check Android 샌드박스 테스트 가이드
- Visit 구글 플레이 개발자 지원
안드로이드 플레이 스토어 리뷰 지침서의 IAP 항목에서 계속 진행하세요.
IAP 항목에서 계속 진행하세요. 안드로이드 플레이 스토어 리뷰 지침서 제목Capgo를 사용 중이라면 안드로이드 플레이 스토어 리뷰 지침서의 IAP 항목 보안 및 규정 준수 계획을 위해 IAP 항목을 사용하여 연결하세요. Using @capgo/native-purchases Using @capgo/native-purchases의 네이티브 기능을 위해 Using @__CAPGO_KEEP_0__/native-purchases의 네이티브 기능 암호화 암호화 구현 세부 사항 규정 준수 Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로우에서 Capgo 보안 Capgo 보안의 제품 워크플로우에서