메인 콘텐츠로 건너뛰기

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

iOS와 Android에서 In-App 구매가 포함된 앱을 승인받기 위한 완전한 안내서. 2025년의 일반적인 거절 사유, 요구 사항 및最佳 관행을 학습하세요.

작성 기여자

마틴 도나디우

작가

발레리아

리뷰어

조던

편집자

2025년 앱 스토어 리뷰 통과하는 방법: 인앱 구매

앱 스토어와 구글 플레이에 앱을 승인받는 것은 어려울 수 있습니다. 특히 인앱 구매(IAP)와 구독을 implement하는 경우입니다. 2025년 stricter한 지침으로 인해 리뷰어들이 무엇을 찾는지 이해하는 것이 중요합니다. 이 포괄적인 가이드는 첫 번째 제출에서 리뷰 통과하기 위해 필요한 모든 것을 다룹니다.

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

인앱 구매로 인해 거절된 앱

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

  1. 가격이 불분명합니다. (2025년 거부 사유 42%)
  2. 구독 약관이 누락되거나 혼동스럽습니다. (31%)
  3. 사용자 인터페이스 패턴이 속임수입니다. (18%)
  4. 개인 정보 보호 정책 위반입니다. (9%)

이러한 함정에서 벗어나기 위해 필요한 단계를 살펴보겠습니다.

iOS 앱 스토어 요구 사항

📖 iOS 앱 스토어 가이드: 전체적인 설정 방법 완전한 설정 방법은我们的 iOS 앱 스토어 리뷰 가이드를 참조하십시오.

1. 투명한 가격 공개

애플은 정확한 가격 공개를 요구합니다. 앞서 구매 버튼 위에 가격을 명확하게 표시합니다. 이는 협상할 수 없습니다.

애플이 원하는 것은:

  • 가격이 명확하게 표시되도록 "월 $9.99"과 같은 형식으로
  • 결제 주기가 미리 알려져야 합니다.
  • 사용자가 돈을 지불하는 데 무엇을 얻는지
  • 요금이 언제 발생하는지
  • 취소 방법이 표시되어야 합니다.

UI 디자인 최적화

일반적인 실수: 가격을 사용자가 "구독" 버튼을 탭할 때까지 숨기거나, 세세한 글씨로만 표시하는 경우.

해결책:

// 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 긴급성을 만들기 위해 카운트다운 타이머를 사용하는 경우
  • ‘Only 3 spots left!’와 같은 가짜 부족함을 사용하는 경우

3. 구매내역 복원 기능

모든 IAP 앱은 구매내역 복원 버튼을 제공해야 하며, 지원 연락처를 필요로 하지 않아야 합니다. 더 알아보기: Getting Started Guide.

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년에는 개인 정보 보호 강화가 더 엄격해집니다. 애플은 이제 다음과 같이 요구합니다:

모든 권한에 대해:

  • 명확한 설명 앞서 context: 애플리케이션 스토어 리뷰 IAP에 대한 방법을 설명하는 Capgo 마케팅 웹사이트의 페이지/영역. 역할: 마케팅 또는 법적 문단. 위치: contributing.astro 페이지. 메시지 키: create_an_issue_and_discuss_before_working_on_a_new_feature (새 기능에 작업하기 전에 이슈를 만들고 논의하기)
  • 요청
  • context: 애플리케이션 스토어 리뷰 IAP에 대한 방법을 설명하는 Capgo 마케팅 웹사이트의 페이지/영역. 역할: 웹사이트 복사 문장. 위치: contributing.astro 페이지. 메시지 키: mention_issue_before_working (이전에 작업하기 전에 이슈를 언급하기)
  • 특정 사용 사례 (일반적인 것이 아닌)

데이터가 저장/공유되는 방식 Info.plist 그것이 선택 사항인지 여부

<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

📖 Comprehensive Android Guide: 완전한 설정 지침을 보려면 우리의 Android Play Store Review Guide

1. Google Play Billing 의무

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

기능의 구독

  • 앱 내 화폐
  • For complete setup instructions, see our
  • 디지털 콘텐츠 (전자책, 음악)
  • Premium 언락

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

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

native-purchases와의 구현:

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

구글은 구독이 자동으로 갱신되는 것을 명확하게 공개해야 하며, 다음 항목을 포함해야 합니다.

  • 구매 전 청구 알림
  • 가격 알림
  • 취소 접근성

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. 정확한 데이터 안전 섹션 선언

데이터 안전 선언:

  • 구매 내역 수집
  • 이메일 주소 (영수증)
  • 기기 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.');
    }
  }
}

제출 전 체크리스트

제출 전 체크리스트

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

테스트

  • 모든 구독 계층을 테스트하세요.
  • 무료 시범 기간이 올바르게 작동하는지 확인하세요.
  • 소개 요약이 올바르게 작동하는지 테스트하세요.
  • 구매 복원 기능이 정상 작동하는지 확인합니다.
  • 다양한 기기에서 테스트합니다.
  • 테스트 계정 및 샌드박스 계정이 정상 작동하는지 확인합니다.

가격 및 약관

  • 모든 플랫폼에서 가격이 일치하는지 확인합니다.
  • 구독 약관이 명확하게 표기되어 있는지 확인합니다.
  • 취소 방법이 표시되어 있는지 확인합니다.
  • 결제 주기 표시되어 있는지 확인합니다.
  • 무료试用 기간이 정확한지 확인합니다.

개인 정보 및 권한

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

메타데이터

  • 스크린샷은 현재 버전을 보여줍니다.
  • 설명은 기능과 일치합니다.
  • 장치 텍스트가 없습니다.
  • 나이 등급이 정확합니다.
  • __CAPGO_KEEP_0__ 품질

Code Quality

  • 모든 기능이 설명과 일치합니다.
  • __CAPGO_KEEP_0__
  • 오류 처리가 implemented되었습니다.
  • 로딩 상태가 표시됩니다.
  • 네트워크 오류가 처리되었습니다.

리뷰 타임라인 예상

리뷰 타임라인

iOS:

  • 표준: 24-48시간
  • 피크 기간: 3-5일
  • 주말: 리뷰 없음
  • 급속화: 중요 버그에 대해 사용 가능

Android:

  • 초기: 7일 평균
  • 업데이트: 일반적으로 더 빠르다
  • 롤링 리뷰: 주말 지연을 피하기 위해 월요일-수요일에 iOS 앱을 제출하는 것이 좋습니다.
  • 정책 위반: 즉시 중단 가능

프로 팁: 주말 지연을 피하기 위해 월요일-수요일에 iOS 앱을 제출하는 것이 좋습니다.

거절된 경우 무엇을 할 것인가

해석 과정

1단계: 문제를 이해하라

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

Step 2: 심각한 문제를 해결하십시오

  • 원인에 대하여, 증상에 대하여 해결하십시오
  • 해결을 철저히 테스트하십시오
  • 모든 변경 사항을 문서화하십시오
  • 이전/후의 스크린샷을 찍으십시오

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.

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.

Step 4: 빠르게 재제출하십시오

  • 재제출은 빠르게 검토됩니다
  • 보통 24시간 이내
  • iOS 앱 스토어 리뷰 통과 방법: IAP
  • 테스트 계정 포함

이전 제출서류 참조

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

iOS 변경 사항 AI 기능 공개

  • AI 생성 콘텐츠 라벨링
  • AI 사용 설명
  • 콘텐츠 안전 문서화

강화된 구독 명확성

  • 오픈 플랜 비교 필요
  • 비용이 저렴한 옵션 숨기지 않기
  • 업그레이드/다운그레이드 경로를 명확하게 하기

개인 정보 보호 강화

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

안드로이드 변경 사항

대안 결제 (지역)

  • EEA, 한국에서 허용
  • 구글 플레이 옵션을 제공해야 함
  • 서비스 수수료 감소

구독 API 요구 사항

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

성공을 위한 Best Practices

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

The capgo/native-purchases 플러그인은 두 플랫폼 모두 올바르게 처리합니다: 2. 올바른 오류 처리를 구현하십시오.

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

구매 상태를 모두 부드럽게 처리하십시오:

사용자 취소 (silent)

  • 네트워크 오류 (재시도 옵션)
  • __CAPGO_KEEP_0__
  • 구매한 제품 (복원)
  • 제품이 사용할 수 없음 (사용자에게 알림)
  • 결제 중 (다시 확인)

3. 명확하게 전달하라

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

  • 무엇을 구매하는지
  • 얼마를 지불하는지
  • 언제 청구가 되는지
  • 취소하는 방법
  • trial 후에 무슨 일이 일어나는지

4. 광범위하게 테스트하라

iOS Sandbox:

  • App Store Connect에서 테스트 계정을 생성하세요.
  • 장치에서 설정 (설정 > 앱 스토어 > 샌드박스)
  • 가속된 구독 기간을 주의하세요.

Android 라이선스 테스트:

  • Play Console에서 테스트 계정을 추가하세요.
  • ‘테스트 구매’ 알림을 확인하세요.
  • 실제 요금이 발생하지 않습니다.

자원

플랫폼 문서

Implementation Guides

상세 리뷰 가이드

전문가 도움 필요하세요?

앱 리뷰 또는 인앱 구매 구현에 어려움을 겪고 있나요? 우리 팀은 인앱 구매 구현 및 리뷰 준비를 위한 전용 지원을 제공합니다.

전문가와의 상담 전화 예약 개인화된 도움을 받기 위해:

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

우리는 수백 개의 앱이 검토를 통과하는 데 도움을 주었습니다!

결론

2025년 앱 스토어 검토를 통과하기 위해 IAP를 사용하는 것은 세부 사항에 주의를 기울이고 명확한 의사소통 및 올바른 구현이 필요합니다. 주요 결론:

  1. 투명성이 필수적입니다 - 항상 가격을 미리 공개하세요
  2. 플랫폼 규칙을 따르세요 - 사용자 결제 시스템을 사용해야 합니다.
  3. 깊이 테스트하세요. - 리뷰어들이 먼저 발견하지 못하는 문제를 잡아야 합니다.
  4. 명확하게 전달하세요. - 사용자는 혼란스러워서는 안 됩니다.
  5. 문서를 준비하세요. - 테스트 계정 준비가 되어 있어야 합니다.

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

targetLanguage

ko Check out our comprehensive documentation or reach out to the community for support.

Keep going from How to Pass App Store Review for In-App Purchases in 2025

If you are using How to Pass App Store Review for In-App Purchases in 2025 to plan store approval and distribution, connect it with @capgo/capacitor-in-app-review for the implementation detail in @capgo/capacitor-in-app-review, Using @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.

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

웹层 버그가 활성화되면 Capgo를 통해修정을 배포하는 대신 앱 스토어 승인까지 며칠 기다리지 마십시오. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경은 일반 검토 경로에 남아 있습니다.

마틴의 인간 지원

시작하기

최신 블로그 게시물

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