메인 콘텐츠로 건너뛰기

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

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

__CAPGO_KEEP_0__

세부 설치 지침이 필요합니까? 완전한 안내서를 확인하세요: iOS 앱 스토어 리뷰 | 안드로이드 플레이 스토어 리뷰

IAP를 포함한 앱이 왜 거절되는지

IAP를 포함한 앱은 실제 돈 거래를 포함하므로 더 높은 심사 기준을 받습니다. 2025년 기준, 앱 스토어 리뷰 지침과 Google Play의 수익화 정책에 따르면, 가장 큰 거절 이유는 다음과 같습니다. 가격이 불분명합니다.(거절의 42%)

  1. IAP를 포함한 앱은 실제 돈 거래를 포함하므로 더 높은 심사 기준을 받습니다. 2025년 기준, 앱 스토어 리뷰 지침과
  2. __CAPGO_KEEP_0__ (31%)
  3. __CAPGO_KEEP_1__ (18%)
  4. __CAPGO_KEEP_2__ (9%)

애플리케이션을 개발하는 동안 이러한 함정에서 벗어나기 위한 방법에 대해 자세히 알아보겠습니다.

__CAPGO_KEEP_3__ iOS App Store Requirements

📖 __CAPGO_KEEP_4__ : iOS App Store에 애플리케이션을 출시하기 위한 모든 것을 포함한 완전한 iOS 가이드 __CAPGO_KEEP_5__ iOS App Store Review Guide __CAPGO_KEEP_0__ 1. Crystal-Clear Pricing Transparency

애플은 구매 버튼 이전에 정확한 가격을 공개해야 합니다. 이는 협상할 수 없는 사항입니다.

__CAPGO_KEEP_6__ __CAPGO_KEEP_7__ __CAPGO_KEEP_8__

Apple이 원하는 것:

  • 가격이 명확하게 표시되었습니다: “월 $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. 구독 플랜 제시

애플은 비싼 계층을 밀어넣기 위해 '다크 패턴'을 사용하는 앱을 플래그합니다.

필수:

  • 모든 구독 계층을 동일하게 표시하세요
  • 프리미엄 옵션을 미리 선택하지 마세요
  • 기능 비교가 명확하세요
  • 비싼 옵션을 찾기 쉬운 곳에 표시하지 마세요

Forbidden:

  • 연간 계획으로 자동 기본 설정
  • 월별 옵션을 숨기고 추가 탭을 사용하여
  • 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 년에는 개인 정보 보호 강화가 시행됩니다. 애플은 다음과 같이 요구합니다:

모든 권한에 대해

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

entries: Info.plist 2025년의 주요 거부 사유 중 하나는 부정확한 개인 정보 보호 레이블입니다.

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

Android Google Play 요구 사항

전체 Android 가이드:

📖 설정 완료 지침을 보려면我们的 see our 안드로이드 플레이 스토어 리뷰 가이드

1. 구글 플레이 결제가 필요합니다.

디지털 상품 (구독, 앱 내 콘텐츠)에는 구글 플레이 결제가 필요합니다. 대안 결제 방법은 거부될 것입니다.

디지털 상품 (구글 플레이 결제 필요):

  • 기능의 구독
  • 앱 내 화폐
  • 디지털 콘텐츠 (전자책, 음악)
  • 프리미엄 언락

물리적 상품 (구글 플레이 결제 불가):

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

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

데이터 안전 선언해야 함:

  • 구매 내역 수집
  • 영수증을 위한 이메일 주소
  • 사기 방지 purposes의 기기 ID
  • 분석 데이터

앱 설명 지침

모두 플랫폼에서 공통으로 발생하는 거부 사유

1. 메타데이터 불일치

실패하는 이유:

  • 스크린샷은 현재 버전의 기능이 아닌 것을 보여주고 있습니다.
  • 설명은 실제로 존재하지 않는 기능을.promise
  • 가격은 앱에 나와있는 것과 다릅니다.

메타데이터 체크리스트

예방책:

  • 스크린샷을 매 제출마다 업데이트하십시오.
  • 설명이 실제 기능과 일치하도록 하십시오.
  • 모든 주장은 정확한지 테스트하십시오.
  • 기존의 홍보 문구가 outdated한 경우 제거하십시오.

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의 Info.plist 설명이 명확합니다.
  • Android의 Data Safety가 완료되었습니다.

메타데이터

  • __CAPGO_KEEP_0__ 품질
  • __CAPGO_KEEP_0__ 설명이 기능과 일치합니다.
  • 장치 텍스트 없음
  • 연령 등급이 정확합니다.
  • 모든 주장은 테스트 가능합니다.

Code 품질

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

리뷰 타임라인 기대치

리뷰 타임라인

iOS:

  • 표준: 24-48시간
  • 주말: 리뷰 없음
  • Peak periods: 3-5일
  • Expedited: 심각한 버그에 대한 비용이 들 수 있습니다

Android:

  • 초기: 7일 평균
  • 업데이트: 일반적으로 더 빠르다
  • Rolling reviews: 언제든지 라이브로 가능합니다
  • 정책 위반: 즉시 중단 가능

Pro Tip: 주말 지연을 피하기 위해 iOS 앱을 월요일부터 수요일까지 제출하세요.

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

확인 절차

1단계: 문제를 이해하세요.

  • 거부 통지를 신중히 읽으세요.
  • 특정 가이드라인을 인용한 것을 주목하세요.
  • 제공된 예시를 확인하세요.
  • 피드백에서 패턴을 찾으세요.

2단계: 철저히 수정하세요.

  • 원인에 대처하세요, 증상에 대처하지 마세요.
  • 수정 사항을 광범위하게 테스트하세요.
  • 모든 변경 사항을 문서화하세요.
  • __CAPGO_KEEP_0__

전문적으로 대응하세요

문서 요청

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.

빠르게 재제출하세요

  • 재제출은 더 빠르게 검토됩니다
  • 보통 24시간 이내
  • 테스트 계정 포함
  • 이전 제출서류 참조

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

iOS 변경 사항

인공지능 기능 공개 (신규)

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

강화된 구독 명확성

  • 비교 가능한 구독 옵션
  • 비용이 저렴한 옵션 숨기지 않음
  • 업그레이드/다운그레이드 경로 명확화

개인 정보 보호 강화

  • 5.1.1 조항 강화
  • 데이터 정당성에 대한 더 많은 심사
  • 더 엄격한 어린이 앱 규칙

Android 변경 사항

대안 결제 (지역)

  • 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 (사용자에게 알리세요)
  • 결제 대기 (이후 확인)

3. 명확하게 의사소통하세요

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

  • 그들이 구매하는 것
  • 그것의 비용
  • 그들이 청구될 때
  • 취소하는 방법
  • trial 후에 무슨 일이 일어나는지

4. 광범위한 테스트

iOS 샌드박스:

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

Android 라이선스 테스트:

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

자원

플랫폼 문서

구현 안내서

__CAPGO_KEEP_2__

__CAPGO_KEEP_5__

앱 리뷰 또는 인앱 구매 구현에 대한 전문적인 도움을 필요로 하신다면? Capgo 팀은 앱 리뷰 준비 및 인앱 구매 구현에 대한 전용 지원을 제공합니다.

Capgo와의 상담 전화 예약 다음과 같은 개인화된 도움을 받기 위해

  • 인앱 구매 구현 리뷰
  • 앱 스토어 리뷰 준비
  • 제출 전략 지침
  • 거부 해결 도움
  • 설치 및 테스트 지원 완료

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

결론

2025 년 앱 검토를 통과하기 위해서는 세부 사항에 주의를 기울이고 명확한 의사 소통 및 적절한 구현이 필요합니다. 주요 takeaway:

  1. 투명성이 필수적입니다 - 항상 가격을 미리 공개하십시오
  2. 플랫폼 규칙을 따르십시오 - 필요한 계정 관리 시스템을 사용하십시오
  3. 적극적으로 테스트하십시오 - 검토자보다 문제를 먼저 발견하십시오
  4. 명확하게 의사 소통하십시오 - 사용자는 절대 혼란스러워하지 않아야 합니다.
  5. 문서를 준비하세요. - 테스트 계정 준비가 완료되었습니다.

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

전문적인 문서를 확인하거나 커뮤니티에 지원을 요청하세요.

Capgo에 의해 작성되었습니다. __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__

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

Capgo를 통해 웹 레이어 버그가 생긴 경우, 앱 스토어 승인까지 며칠 기다리지 않고 바로修정 배포하세요. 사용자는 배경에서 업데이트를 받으면서 네이티브 변경 사항은 일반적인 검토 경로에 남아 있습니다.

시작하기

최신 블로그 게시물

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