콘텐츠로 건너뛰기

iOS 자동 갱신 구독 생성

자동 갱신 구독을 통해 iOS 앱의 콘텐츠, 서비스 또는 프리미엄 기능에 반복적으로 액세스할 수 있습니다. 이 가이드는 App Store Connect에서 구독을 만드는 과정을 안내합니다.

자동 갱신 구독은 사용자가 취소할 때까지 각 결제 기간이 끝날 때 자동으로 갱신됩니다. 다음과 같은 경우에 적합합니다.

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

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

  1. 구독을 정리하려면 구독 그룹을 생성하세요.
  2. 활성 Apple 개발자 프로그램 멤버십을 보유하고 있습니다.
  3. App Store Connect에서 은행 및 세금 정보를 작성하세요.
  1. 구독으로 이동

    App Store Connect에서 앱을 선택하고 수익 창출 > 구독으로 이동합니다.

    구독 그룹을 선택하거나 필요한 경우 새 구독 그룹을 만드세요.

    구독으로 이동

  2. 새 구독 만들기

    새 구독을 추가하려면 구독 그룹 옆에 있는 + 아이콘을 클릭하세요.

  3. 기본정보 입력

    참조 이름: 내부 사용을 위한 설명 이름(고객에게 표시되지 않음)

    • 예: “Premium Monthly”, “Ultimate Annual”, “기본 플랜”

    제품 ID: 이 구독에 대한 고유 식별자(나중에 변경할 수 없음)

    • 형식: com.yourcompany.yourapp.premium_monthly
    • 밑줄과 함께 설명이 포함된 소문자 이름을 사용하세요.
    • 기본 구매 플러그인 구성에 필요합니다.

    구독 세부정보 입력

  4. 기간 구성

    사용 가능한 옵션 중에서 구독 기간을 선택하세요.

    • 1주
    • 1개월
    • 2개월
    • 3개월
    • 6개월
    • 1년

    기간에 따라 사용자에게 비용이 청구되는 빈도가 결정됩니다.

  5. 가격 설정

    가격을 구성하려면 구독 가격 추가를 클릭하세요.

    기본 지역: 주요 시장(일반적으로 국가)을 선택합니다.

    가격: 구독 가격을 설정하세요.

    • Apple는 자동으로 다른 통화로 변환됩니다.
    • Apple의 가격대 중에서 선택하세요.
    • 인지된 가치와 시장 가격을 고려

    가격 구성

  6. 가족 공유(선택 사항)

    최대 6명의 가족 구성원이 구독에 액세스할 수 있도록 허용하는 가족 공유를 활성화할지 여부를 결정합니다.

    :::주의 가족 공유가 활성화되면 이 제품에 대해 비활성화할 수 없습니다. :::

    다음의 경우 활성화:

    • 가족이 사용하기에 적합한 콘텐츠
    • 가치 제안을 높이고 싶으신 분
    • 귀하의 비즈니스 모델이 이를 뒷받침합니다.

    다음과 같은 경우에는 활성화하지 마세요

    • 구독은 개인 용도로만 사용 가능
    • 콘텐츠는 사용자에게 개인화됩니다.
    • 사용자당 수익을 극대화하고 싶으신 분
  7. 현지화 추가

    앱이 지원하는 모든 언어로 구독 표시 정보를 추가하세요.

    구독 표시 이름: 고객에게 표시되는 이름(예: “Premium Monthly”)

    설명: 구독에 포함된 내용에 대한 간략한 설명

    • 간결하고 이익 중심으로 작성하세요.
    • 주요 기능 언급
    • 가치 제안 강조

    현지화 추가8. App Store 프로모션 이미지(선택사항)

    이 구독에 대한 프로모션 이미지를 업로드하세요(312x390픽셀):

    • App Store 구독 페이지에 표시됩니다.
    • 앱 디자인과 일치해야 합니다.
    • 명확성을 위해 구독 이름을 포함합니다.

    :::참고 이미지는 초기 제출 시 선택 사항이지만 App Store에 홍보용으로 표시하려면 필수입니다. 나중에 추가할 수 있습니다. :::

  8. 저장 및 제출

    구독을 생성하려면 저장을 클릭하세요.

    첫 번째 구독의 경우:

    • 새로운 앱 버전으로 제출해야 합니다.
    • 다음 App Store 제출에 포함
    • 단독으로 제출할 수 없음

    후속 구독의 경우:

    • 구독 페이지에서 직접 제출 가능
    • 새로운 앱 버전이 필요하지 않습니다.
    • 최초 가입 승인 후 이용 가능

구독 상태는 다음 중 하나입니다.

상태설명테스트할 수 있나요?
메타데이터 누락불완전한 설정예(샌드박스)
제출 준비 완료완료되었으나 제출되지 않음예(샌드박스)
검토를 기다리는 중Apple에 제출됨예(샌드박스)
검토 중Apple에서 검토 중예(샌드박스)
승인됨구매 가능
거부됨변경이 필요함예(샌드박스)

구독이 생성되면 제품 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();
}
  • 월간 요금제: 진입 장벽을 낮추고 습관을 형성합니다.
  • 연간 요금제: 더 나은 가치, 더 높은 LTV, 더 낮은 이탈률
  • 다양한 계층: 다양한 사용자 세그먼트를 위한 기본, 프리미엄, 얼티밋
  • 경쟁력 분석: 유사한 앱의 가격 조사
  • 일관된 이름 사용: 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가 정확히 일치하는지 확인하세요(대소문자 구분).
  • 구독이 구독 그룹에 있는지 확인하세요.
  • 번들 식별자가 App Store Connect과 일치하는지 확인하세요.
  • 상품 생성 후 2~3시간 대기구독을 제출할 수 없습니다:
  • 필수 항목(이름, 설명, 가격)을 모두 작성하세요.
  • 하나 이상의 현지화를 추가하세요.
  • 은행/세금 정보가 승인되었는지 확인하세요.
  • 첫 번째 구독 여부 확인(앱 버전 필요)

가족 공유 토글이 비활성화되었습니다:

  • 이미 활성화되어 있음(비활성화할 수 없음)
  • 구독 내역 확인
  • 문제가 있는 경우 Apple 지원팀에 문의하세요.

사용할 수 없는 가격대:

  • 일부 지역에서는 이용이 제한될 수 있습니다.
  • 대체 계층 선택
  • 가격 관련 질문은 Apple에 문의하세요.

“잘못된 제품 ID” 오류:

  • 역도메인 형식이어야 합니다.
  • 공백이나 특수문자를 포함할 수 없습니다.
  • 오타가 있는지 확인하세요
  • 모든 제품에 걸쳐 고유성을 확인합니다.

자세한 내용은 자동 갱신 구독에 대한 공식 Apple 문서를 참조하세요.