본문으로 바로가기

2025년 앱 스토어 리뷰 통과를 위한 In-App 구매 방법

iOS와 Android에서 In-App 구매가 포함된 앱을 승인받기 위한 완전한 가이드입니다. 2025년의 일반적인 거절 사유, 요구 사항 및最佳 관행을 배워보세요.

마틴 도나디유

마틴 도나뇨

컨텐츠 마케터

2025년 앱 스토어 리뷰 통과하기: 인앱 구매

앱 스토어와 구글 플레이에 앱을 승인받는 것은 어려울 수 있습니다. 특히 인앱 구매(IAP)와 구독을 구현할 때 더욱 그렇습니다. 2025년 stricter guidelines로 인해 리뷰어들이 무엇을 찾는지 이해하는 것이 중요합니다. 이 포괄적인 안내서에서는 첫 번째 제출에서 리뷰 통과하기 위해 필요한 모든 것을 다룹니다.

세부한 설정 지침이 필요하신가요? 완전한 지침서를 확인하세요: iOS 앱 스토어 리뷰 | Android 플레이 스토어 리뷰

인앱 구매 앱이 거절되는 이유

인앱 구매 앱은 실제 돈 거래를 포함하고 있기 때문에 더 높은 경계를 받습니다. 애플의 앱 스토어 리뷰 지침서구글 플레이의 수익화 정책2025년 기준으로 가장 자주 거부되는 이유는:

  1. 가격이 불분명한 경우 (거부의 42%)
  2. 구독 약관이 누락되거나 혼란스러운 경우 (31%)
  3. 사용자 인터페이스 패턴이 속임수인 경우 (18%)
  4. 개인 정보 보호 정책 위반 (9%)

이러한 함정에 빠지지 않도록 하기 위해 자세히 알아보겠습니다.

iOS 앱 스토어 요구 사항

📖 iOS 앱 스토어 가이드: 설정에 대한 자세한 설명은 iOS 앱 스토어 검토 가이드

1. 명확한 가격 공개

애플은 정확한 가격 공개를 요구합니다. 구매 버튼 이전에 이것은 협상할 수 없습니다.

애플이 원하는 것:

  • 가격이 명확하게 표시되도록: “월 $9.99”
  • 청구 주기가 미리 알려져야 함
  • 사용자가 돈을 지불하는 데 무엇을 얻는지
  • 요금이 언제 발생하는지
  • 취소 방법이 표시되어야 함

UI 디자인 최적화

일반적인 실수: Hiding price until users tap “Subscribe” or showing price only in fine print.

해결책:

// 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. 구독 플랜 제시

애플은 비싼 계층을 밀어붙히기 위해 '암흑 패턴'을 사용하는 앱을 신고합니다.

필수:

  • 모든 구독 계층을 동일하게 표시
  • 기존 프리미엄 옵션을 미리 선택하지 않음
  • 분명한 기능 비교
  • 더 저렴한 대안을 쉽게 찾을 수 있음

Forbidden:

  • 년간 계획으로 자동 기본값 설정
  • 월별 옵션을 추가 탭으로 숨김
  • 카운트다운 타이머를 사용하여 가짜 긴급성을 생성
  • ‘남은 자리 3개!’와 같은 가짜 부족함

구매 복원 기능을 복원

모든 IAP 앱은 지원 연락처 없이 구매 복원 버튼이 작동해야 함. 더 자세한 내용은 "Getting Started Guide"를 참조하세요. 시작 가이드.

구현:

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년에는 개인정보 보호 강화가 시행됩니다. 애플은 이제 다음과 같은 개인정보 보호 규정을 요구합니다.

모든 권한에 대해:

  • 명확한 설명 권한을 요청하기 전에 특정 사용 사례 (일반적인 것이 아닌)
  • 데이터가 저장/공유되는 방식
  • 선택 사항 여부
  • 예시

entries: Info.plist __CAPGO_KEEP_0__

<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 리뷰 가이드

1. Google Play Billing이 필수입니다.

디지털 상품 (구독, 앱 내 콘텐츠)에서 Google Play Billing을 사용해야 합니다. 대안 결제 방법은 거부될 것입니다.

디지털 상품 (Play Billing 필수):

  • 기능에 대한 구독
  • 앱 내 화폐
  • 디지털 콘텐츠 (전자책, 음악)
  • __CAPGO_KEEP_0__

물리적 상품 (Play Billing 사용 불가):

  • 실제 물품
  • 물리적 서비스
  • 비영리 기부

__CAPGO_KEEP_1__:

자연스러운 Android 설정을 위해 Android 샌드박스 테스트구독 생성.

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. 투명한 자동 갱신

Google은 자동으로 갱신되는 구독에 대한 명확한 공개를 요구하며, 다음을 포함합니다.

  • 자동 갱신 전 통지
  • 요금 알림
  • 자동 취소 접근이 쉬운 경우

준수 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 앱에 필수:

  1. Play Console에 개인 정보 보호 정책 URL
  2. 앱 내 개인 정보 보호 정책 링크 접근 가능
  3. 정확한 데이터 안전 섹션 선언

데이터 안전 선언해야 함:

  • 구매 이력 수집
  • __CAPGO_KEEP_0__ (수신 확인용)
  • __CAPGO_KEEP_0__ (사기 방지)
  • __CAPGO_KEEP_0__ (분석 데이터)

앱 설명 지침

두 플랫폼 모두에서 일반 거절 사유

1. 메타데이터 불일치

실패하는 이유:

  • 스크린샷은 현재 버전의 기능이 아닌 것을 보여주고 있습니다.
  • 설명은 존재하지 않는 기능을 약속하고 있습니다.
  • 가격은 앱 내의 가격과 다릅니다.

메타데이터 체크리스트

예방책:

  • __CAPGO_KEEP_0__
  • __CAPGO_KEEP_1__
  • __CAPGO_KEEP_2__
  • __CAPGO_KEEP_3__

2. 유도적 마케팅

자동 거절 트리거:

  • ‘#1 앱’의 증거 없이
  • ‘무제한’에 숨겨진 제한
  • 가짜 리뷰 또는 평점
  • 경쟁사 비방

마케팅 지침

최선의 실천: Be specific and factual:

  • ✓ "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.');
    }
  }
}

제출 전 체크리스트

제출 전 체크리스트

제출하기 전에 이 체크리스트를 사용하세요. 자세한 테스트 절차는:

테스트

  • 모든 구독 등급을 테스트하세요.
  • 무료 시범 기간이 올바르게 작동하는지 확인하세요.
  • 소개ductory 제안을 테스트하세요.
  • 구매를 복원하는 것이 작동하는지 확인합니다.
  • 다양한 장치에서 테스트합니다.
  • 테스트/샌드박스 계정의 작동을 확인합니다.

가격 및 약관

  • 모든 플랫폼에서 가격이 일치합니다.
  • 구독 약관이 명확하게 표기됩니다.
  • 취소 지침이 표시됩니다.
  • 결제 주기 표시됩니다.
  • 무료 시범 기간이 정확합니다.

개인 정보 및 권한

  • 스토어에서 개인 정보 정책이 연결됩니다.
  • 앱 내에서 개인 정보 정책이 접근 가능합니다.
  • 모든 권한이 정당화되었습니다
  • Info.plist 설명이 명확합니다 (iOS)
  • 데이터 안전이 완료되었습니다 (Android)

메타데이터

  • 현재 버전을 보여주는 스크린샷
  • 설명이 기능과 일치합니다
  • 장치 텍스트 없음
  • 연령 등급이 정확합니다
  • 모든 주장은 테스트 가능합니다

Code 품질

  • 런치 시 충돌 없음
  • 모든 기능이 설명과 일치합니다
  • __CAPGO_KEEP_0__ 처리 오류 구현
  • __CAPGO_KEEP_0__ 로딩 상태 표시
  • __CAPGO_KEEP_0__ 네트워크 오류 처리

__CAPGO_KEEP_0__ 리뷰 타임라인 기대치

__CAPGO_KEEP_0__ 리뷰 타임라인

iOS:

  • __CAPGO_KEEP_0__: 24-48시간
  • __CAPGO_KEEP_0__: 3-5일
  • __CAPGO_KEEP_0__: 주말에는 리뷰 없음
  • __CAPGO_KEEP_0__: 비상시 비용이 부담되지 않음

Android:

  • __CAPGO_KEEP_0__: 7일 평균
  • 업데이트: 보통 더 빠르다
  • 롤링 리뷰: 주말 지연을 피하기 위해 월-수요일에 iOS 앱을 제출하세요.
  • 정책 위반: 즉시 중단 가능

팁: iOS 앱을 주말 지연을 피하기 위해 월-수요일에 제출하세요.

거부된 경우 무엇을 해야 하나요?

확인 절차

1단계: 문제를 이해하라

  • 거부 통지를 읽어라
  • 특정 가이드라인을 언급하라
  • 제공된 예시를 확인하라
  • 피드백에서 패턴을 찾으라

Step 2: Fix Thoroughly

  • 根本적인 문제를 해결하라
  • 적절한 테스트를 통해 문제를 해결하라
  • 변경 사항을 모두 문서화하라
  • 이전/후 사진

Step 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.

안드로이드 항의:

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.

Step 4: 빠르게 재제출하라

  • 재제출은 빠르게 검토된다
  • 보통 24시간 이내에
  • 테스트 계정 포함
  • 이전 제출물 참조

2025 업데이트 및 새로운 요구 사항

iOS 변경 사항

AI 기능 공개 (새)

  • AI 생성 콘텐츠에 레이블을 지정해야 함
  • AI 사용 설명
  • 콘텐츠 안전성 문서화

강화된 구독 명확성

  • 오픈된 플랜 비교가 필요
  • 비용이 저렴한 옵션 숨기지 않음
  • 업그레이드/다운그레이드 경로가 명확해짐

개인 정보 보호 강화

  • 5.1.1 섹션 강화
  • 데이터 정당성에 대한 더 많은 주의
  • 어린이 앱 규칙 강화

안드로이드 변경 사항

대안 결제 (지역)

  • EEA, 한국에서 허용
  • Google Play 옵션을 여전히 제공해야 함
  • 서비스 수수료 감소

구독 API 요구 사항

  • 새로운 앱은 monetization.subscriptions API를 사용해야 합니다.
  • 기존 결제 API는 deprecated되었습니다.
  • 구독 관리를 위한 더 나은 도구

성공을 위한最佳 관행

1. 올바른 SDK를 사용하십시오.

The @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'
});

2. 올바른 오류 처리를 구현하십시오.

구매 상태를 모든 경우에 부드럽게 처리하십시오:

  • 사용자 취소 (침묵)
  • 네트워크 오류 (재시도 옵션)
  • 이미 소유 (복원)
  • 제품 unavailable (사용자에게 알림)
  • 결제 pending (다시 확인)

3. 명확한 의사소통

사용자는 항상 알 수 있어야 한다:

  • 구매하는 것
  • 비용
  • 결제 시점
  • 취소 방법
  • trial 후 발생하는 일

4. 광범위한 테스트

iOS Sandbox:

  • __CAPGO_KEEP_0__ 계정 만들기 (App Store Connect)
  • __CAPGO_KEEP_0__ 설정 (설정 > 앱 스토어 > 샌드박스)
  • 가속된 구독 기간 주의

Android License Testing:

  • __CAPGO_KEEP_0__ 계정 만들기 (Play Console)
  • ‘구매 테스트’ 알림 보기
  • 실제 요금이 발생하지 않습니다

자원

플랫폼 문서

구현 안내서

상세 검토 가이드

전문가 도움 필요하세요?

앱 검토 또는 구현 도움 필요하세요? 우리 팀은 인앱 구매 구현 및 검토 준비를 위한 전용 지원을 제공합니다.

우와 함께 상담 전화 예약하세요 개인화된 도움을 받기 위해:

  • IAP 구현 검토
  • 앱 스토어 검토 준비
  • 제출 전략 지침
  • 반려 해결 지원
  • 완전한 설정 및 테스트 지원

우리는 수백 개의 앱 검토를 통과시켰습니다!

결론

2025 년 앱 스토어에서 앱 구매를 위한 검토를 통과하려면 세부 사항에 주의를 기울이고 명확한 의사소통 및 적절한 구현이 필요합니다. 주요 결론:

  1. 투명성이 필수적입니다 - 가격을 항상 앞서 표시하십시오
  2. - 플랫폼 규칙을 따르십시오 - __CAPGO_KEEP_0__ 사용을 위한 지불 시스템을 설정하십시오.
  3. 정확하게 테스트하십시오. - 리뷰어들이 먼저 발견하지 못하는 문제를 해결하십시오.
  4. 명확하게 의사소통하십시오. - 사용자는 혼란스럽지 않아야 합니다.
  5. 문서를 준비하십시오. - 리뷰어들이 테스트할 수 있는 계정을 준비하십시오.

이 안내서를 따라서 native-purchases 플러그인을 사용하여 적절한 도구를 사용하면 첫 번째 승인에 대한 기회를 크게 높일 수 있습니다. 주의하십시오: 리뷰어들은 사용자를 존중하고 지침을 따르는 앱을 찾고 있습니다. 사용자와 지침을 존중하는 마음으로 개발을 하십시오. 승인이 따르겠지요.인앱 구매를 구현하는 데 도움이 필요하신가요?

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__ Check out our 전체적인 문서를 확인하거나 커뮤니티에서 지원을 받으세요.

How to Pass App Store Review for In-App Purchases in 2025에서 계속 진행하세요.

Capgo를 사용하여 How to Pass App Store Review for In-App Purchases in 2025 를 사용하여 스토어 승인 및 배포를 계획하고, @capgo/capacitor-in-app-review 와 연결하세요. @capgo/capacitor-in-app-review Using @capgo/capacitor-in-app-review @capgo/capacitor-in-app-review 를 사용하여 네이티브 기능을 구현하세요. @capgo/capacitor-in-app-review,의 네이티브 기능을 구현하세요. @capgo/capacitor-native-market @capgo/capacitor-native-market @capgo/capacitor-native-market @capgo/capacitor-native-market Capacitor OTA Updates: App Store Approval Guide @Capacitor OTA Updates: App Store Approval Guide

Capacitor 앱에 대한 실시간 업데이트

Capgo 웹-layer 버그가 활성화된 경우, 앱 스토어 승인 대기 없이 Capgo를 통해 패치를 배포하세요. 사용자는 배경에서 업데이트를 받으며, 네이티브 변경은 일반적인 검토 경로를 유지합니다.

시작하기

블로그에서 최신 뉴스

Capgo는 전문적인 모바일 앱을 만들기 위해 필요한 최고의洞察력을 제공합니다.