내용으로 건너뛰기

Create iOS Auto-Renewable Subscription

GitHub

iOS 앱에서 콘텐츠, 서비스 또는 프리미엄 기능에 대한 반복적인 접근을 제공하는 자동 갱신 구독입니다. 이 가이드는 App Store Connect에서 구독을 만드는 방법을 안내합니다.

자동 갱신 구독은 각 billing 기간의 끝에서 자동으로 갱신됩니다. 사용자가 취소하지 않는 한, 사용자들은 구독을 취소할 때까지 계속 갱신됩니다. 구독은 다음과 같은 경우에 적합합니다:

  • 프리미엄 콘텐츠 및 기능
  • 광고가 없는 경험
  • 클라우드 스토리지 및 동기화
  • 스트리밍 서비스
  • 전문가 도구 및 유틸리티

구독을 만들기 전에 다음을 수행해야 합니다:

  1. 구독 그룹 만들기 구독을 조직하기 위해
  2. 활성 Apple Developer Program 회원 가입
  3. App Store Connect에서 은행 및 세금 정보 완료

구독 만들기

구독 만들기 섹션
  1. 구독으로 이동

    In App Store Connect, __CAPGO_KEEP_0__ 앱을 선택하고 수익화 > 구독.

    구독 그룹을 선택하거나 필요할 경우 새로운 그룹을 생성하세요.

    구독을 관리하세요.

  2. 새로운 구독 만들기

    구독 그룹 옆에 있는 아이콘을 클릭하여 새로운 구독을 추가하세요. + 기본 정보 입력

  3. 참조 이름

    : 내부적으로 고객에게 표시되지 않는 내부 이름입니다.예시: "월간 프리미엄", "년간 최고", "기본 계획"

    • 상품 ID

    __CAPGO_KEEP_0__: __CAPGO_KEEP_0__ (변경 불가)

    • 형식: com.yourcompany.yourapp.premium_monthly
    • 이름을 사용하기 쉽게 하기 위해, 소문자와 밑줄을 사용하세요.
    • native-purchases 플러그인을 구성하기 위해 필요합니다.

    구독 정보를 입력하세요.

  4. 구독 기간을 설정하세요.

    구독 기간을 선택하세요.

    • 1 주
    • 1 달
    • 2 달
    • 3 달
    • 6 달
    • 1년

    __CAPGO_KEEP_0__

  5. 설정

    클릭 구독 가격 추가 가격 설정:

    기본 영역:: 주로 국가로 사용하는 주요 시장 선택

    가격:: 다른 통화로 자동 변환되는 애플의 가격 계층 중 선택

    • __CAPGO_KEEP_0__
    • __CAPGO_KEEP_0__
    • 가치 인식과 시장 가격을 고려하세요.

    가격 설정

  6. 가족 공유 (선택)

    가족 공유를 활성화하여 최대 6명의 가족 구성원이 구독에 접근할 수 있도록 결정하세요.

    활성화할 경우:

    • 가족이 사용할 수 있는 콘텐츠입니다.
    • 가치 제안을 증가시키고 싶습니다.
    • 사업 모델이 이를 지원합니다.

    활성화하지 마세요:

    • 개인 사용자만을 위한 구독입니다.
    • 콘텐츠는 사용자에게 맞춤화됩니다.
    • 사용자당 최대 수익을 원하신다면
  7. 국제화 추가

    앱이 지원하는 모든 언어에서 구독 정보를 표시하십시오:

    구독 이름: 고객에게 보이는 이름 (예: "월간 프리미엄")

    설명: 구독이 포함하는 내용의 짧은 설명

    • 간결하고 이점을 강조하십시오
    • 중요한 기능을 언급하십시오
    • 가치 제안을 강조하십시오

    __CAPGO_KEEP_0__

  8. 앱 스토어 홍보 이미지 (선택사항)

    __CAPGO_KEEP_1__ (312x390 픽셀):

    • __CAPGO_KEEP_2__에서 표시
    • __CAPGO_KEEP_3__와 일치
    • __CAPGO_KEEP_4__를 포함하여 명확성
  9. __CAPGO_KEEP_8__

    __CAPGO_KEEP_9__ __CAPGO_KEEP_10__ 구독을 만들기 위해.

    첫 번째 구독:

    • 새로운 앱 버전과 함께 제출해야 함
    • 다음 App Store 제출에 포함하세요
    • Independent로 제출할 수 없음

    후속 구독:

    • 구독 페이지에서 직접 제출할 수 있습니다
    • 새로운 앱 버전이 필요하지 않습니다
    • 첫 번째 구독이 승인된 후 사용할 수 있습니다

구독 상태

구독 상태

구독 상태는 다음과 중 하나일 것입니다:

상태설명테스트 가능?
미리미리 정보 누락설정 미완료Yes (sandbox)
제출 준비 완료제출 완료 미제출Yes (sandbox)
검토 대기애플에 제출Yes (sandbox)
리뷰 중애플에 의해 리뷰 중Yes (sandbox)
승인구매 가능Yes
거절변경이 필요Yes (sandbox)

앱에서 사용하기

앱에서 사용하기

생성된 후, 제품 ID를 참조하여 앱에서 구독을 사용하세요:

import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch subscription products direct from StoreKit
const { products } = await NativePurchases.getProducts({
productIdentifiers: [
'com.yourcompany.yourapp.premium_monthly',
'com.yourcompany.yourapp.premium_annual',
],
productType: PURCHASE_TYPE.SUBS,
});
products.forEach((product) => {
console.log(`${product.title}: ${product.priceString}`);
console.log(`Duration: ${product.subscriptionPeriod}`);
console.log(`Description: ${product.description}`);
});
// Purchase a subscription (StoreKit 2 automatically handles intro pricing and offers)
try {
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'com.yourcompany.yourapp.premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Transaction ID:', transaction.transactionId);
// StoreKit receipts are included on iOS for server-side validation
await sendReceiptToBackend(transaction.receipt);
} catch (error) {
console.error('Purchase failed:', error);
}
// Check subscription status using the store's data
const { purchases } = await NativePurchases.getPurchases({
productType: PURCHASE_TYPE.SUBS,
});
const premium = purchases.find(
(purchase) => purchase.productIdentifier === 'com.yourcompany.yourapp.premium_monthly',
);
if (premium?.isActive) {
console.log('Expires:', premium.expirationDate);
console.log('Will renew:', premium.willCancel === false);
console.log('Store state:', premium.subscriptionState);
unlockPremiumFeatures();
} else {
showPaywall();
}

월 12개월 계약 플랜

월 12개월 계약 플랜

앱 스토어 연결 구독이 월별 청구 플랜과 12개월 계약으로 구성되어 있다면, StoreKit은 그 제품에 대한 추가 가격 조건을 반환할 수 있습니다. 그 조건을 사용하여 구매 전에 월별 요금, 총 계약 가격, 전체 계약 기간을 표시하세요.

const yearlyProduct = products.find(
(product) => product.identifier === 'com.yourcompany.yourapp.premium_annual',
);
const monthlyCommitment = yearlyProduct?.pricingTerms?.find(
(term) => term.billingPlanType === 'monthly',
);
if (yearlyProduct && monthlyCommitment) {
console.log('Monthly charge:', monthlyCommitment.billingDisplayPrice);
console.log('Total commitment:', monthlyCommitment.commitmentInfo?.priceString);
await NativePurchases.purchaseProduct({
productIdentifier: yearlyProduct.identifier,
productType: PURCHASE_TYPE.SUBS,
billingPlanType: 'monthly',
});
}

전체 결제 벽과 권한 흐름을 보려면 iOS 월별 계약 청구 플랜.

최선의 방법

최선의 방법
  • 월별 계획월별 계획: 낮은 진입 장벽, 습관 형성
  • 년간 계획년간 계획: 더 좋은 가치, 높은 LTV, 낮은 churn
  • 다중 티어기본, 프리미엄, 최고급 티어를 위한 다양한 사용자 세그먼트
  • 경쟁 분석상품 ID
  • 일관된 이름 사용: company.app.tier_duration
  • ID에 계층과 기간 포함: premium_monthly, ultimate_annual
  • 제품 ID 변경하지 않기 (영구적임)
  • 팀 내 모든 제품 ID 문서화
  • 가족 중심 앱 (게임, 교육, 엔터테인먼트) 에 대해 활성화
  • 수익에 미치는 영향 고려
  • 공유 동작 테스트 완벽히
  • 마케팅에서 공유 가능성 전달
  • 모든 구독 이름과 설명을 번역하세요.
  • 지역 가격 차이를 고려하세요.
  • 모든 지원 언어에서 표시 테스트
  • 문화적으로 적합한 마케팅 언어를 사용하세요.
  • 일관된 시각적 스타일 유지
  • 구독 이름과 주요 이점 포함
  • 시즌 프로모션을 위한 업데이트
  • 앱의 전체 디자인 언어와 일치

단일 층 (프리미엄)

단일 층 (프리미엄) 섹션
Free App + Premium Subscription
- Basic: Free (limited features)
- Premium Monthly: $4.99
- Premium Annual: $39.99 (save 33%)

다중 층 (좋음, 더 좋음, 최고)

다중 층 (좋음, 더 좋음, 최고) 섹션
- Basic Monthly: $4.99
- Premium Monthly: $9.99
- Ultimate Monthly: $19.99
- Basic Annual: $49.99
- Premium Annual: $99.99
- Ultimate Annual: $199.99

소비 가능한 + 구독형 하이브리드

소비 가능한 + 구독형 하이브리드 섹션
- Credit packs (consumable)
- Monthly subscription (unlimited credits)
- Annual subscription (unlimited + bonus features)

클립보드 복사

  • 제품 ID가 정확히 일치하는지 확인 (대/소문자 구분)
  • 구독이 구독 그룹에 포함되어 있는지 확인
  • 앱 스토어 연결에 등록된 번들 식별자가 정확한지 확인
  • 제품을 생성한 후 2-3시간 기다리기

구독 제출이 불가능합니다:

  • 필수 필드(이름, 설명, 가격) 모두 입력하기
  • 적어도 한 개의 지역화 추가하기
  • 은행/세금 정보가 승인되었는지 확인
  • 첫 번째 구독이 앱 버전을 요구하는지 확인

가족 공유 기능이 비활성화되었습니다:

  • 이미 활성화되어 비활성화할 수 없습니다
  • 구독 상세 정보를 확인하기
  • 애플 지원팀에 문의하세요

__CAPGO_KEEP_0__ 가격 계층이 사용할 수 없습니다:

  • 일부 지역에서 제한될 수 있습니다
  • 대안 계층을 선택하세요
  • 애플 가격에 대한 문의는 애플에 문의하세요

“Invalid Product ID” error:

  • 유효하지 않은 제품 ID 오류:
  • 역 도메인 형식이어야 합니다
  • 공백이나 특수 문자를 포함할 수 없습니다
  • 타자 오류를 확인하세요

모든 제품에서 고유성을 확인하세요

다음 단계

추가 리소스

추가 리소스 섹션

자세한 내용은 자동 갱신 가능 구독에 대한 공식 애플 문서를 참조하십시오..

iOS 자동 재정의 구독을 계속 진행하세요.

Create iOS Auto-Renewable Subscription

이 기능을 사용하는 경우 Create iOS Auto-Renewable Subscription 스토어 승인 및 배포를 계획하고 있습니다. 승인 및 배포를 위해 @capgo/native-purchases @capgo/native-purchases @capgo/capacitor-in-app-review @capgo/capacitor-in-app-review @capgo/capacitor-in-app-review @capgo/capacitor-native-market @capgo/capacitor-in-app-review @capgo/capacitor-native-market에 대한 구현 세부 정보 Using @capgo/capacitor-native-market을 사용합니다. @capgo/capacitor-native-market에 대한 네이티브 기능