iOS 자동 갱신 구독을 만들기
이 플러그인에 대한 설치 단계와 전체 마크다운 가이드를 포함한 설정 프롬프트를 복사합니다.
자동 갱신 구독은 iOS 앱에서 콘텐츠, 서비스 또는 프리미엄 기능에 대한 반복적인 접근을 제공하는 구독입니다. 이 가이드는 App Store Connect에서 구독을 만드는 방법을 안내합니다.
개요
개요자동 갱신 구독은 사용자가 취소할 때까지 각 billing 기간의 끝에서 자동으로 갱신됩니다. 이들은 다음에 적합합니다:
- 최상위 콘텐츠와 기능
- 광고 없는 경험
- 클라우드 스토리지 및 동기화
- 스트리밍 서비스
- 전문가용 도구 및 유틸리티
사전 요구 사항
제목 ‘사전 요구 사항’구독을 만들기 전에 반드시:
- 구독 그룹 만들기 구독을 조직하기 위해
- Apple Developer Program 회원이 활성화된 상태
- App Store Connect에서 은행 및 세금 정보 완료
구독 만들기
구독 만들기 섹션-
구독으로 이동
앱 스토어 연결에서 앱을 선택하고 Monetize > 구독으로 이동.
구독 그룹을 선택하거나 필요 시 새로운 그룹을 만들 수 있습니다.

-
새로운 구독 만들기
구독 그룹 옆에 있는 + icon을 클릭하여 새로운 구독을 추가합니다.
-
기본 정보 입력
참조 이름: 고객 전용 내부 이름 (고객에게 표시되지 않음)
- 예시: “월간 프리미엄”, “년간 최고”, “기본 플랜”
제품 ID: 이 구독에 대한 고유 식별자 (이후 변경할 수 없음)
- 형식:
com.yourcompany.yourapp.premium_monthly - 사용 설명을 포함한 소문자 이름에 언더스코어를 사용
- native-purchases 플러그인을 구성하기 위해 필수

-
구독 기간 설정
선택 가능한 옵션에서 구독 기간을 선택:
- 1 주
- 1 개월
- 2 개월
- 3 개월
- 6 개월
- 1 년
결제 빈도는 사용자에게 얼마나 자주 청구되는지에 영향을 미칩니다.
-
설정 가격
클릭 구독 가격 추가 가격 구성하기:
기본 영역: 기본 시장 (일반적으로 국가)을 선택하세요.
가격: 구독 가격을 설정하세요
- Apple은 다른 통화로 자동 변환합니다
- Apple의 가격 계층 중에서 선택하세요
- 가치 인식과 시장 가격을 고려하세요

-
가족 공유 (선택 사항)
가족 공유를 활성화하여 최대 6명의 가족 구성원이 구독에 접근할 수 있도록 하려면 결정하세요.
활성화 조건:
- 가족이 사용할 수 있는 콘텐츠입니다
- 가치 제안을 높이고 싶습니다.
- 사업 모델이 이를 지원합니다.
다음 경우에는 비활성화하세요:
- 구독은 개인 사용자만을 위한 것입니다.
- 콘텐츠는 사용자에게 맞춤화되어 있습니다.
- 사용자당 최대 수익을 원합니다.
-
지역화 추가
앱이 지원하는 모든 언어에서 구독 정보를 표시하세요:
구독 이름: 고객에게 보이는 이름 (예: "월간 프리미엄")
: 구독이 포함하는 내용의 간략한 설명: 구독이 포함하는 내용의 설명
- __CAPGO_KEEP_0__를 간결하고 이점에 초점을 맞춘 것처럼 유지하세요.
- __CAPGO_KEEP_0__의 주요 기능을 언급하세요.
- __CAPGO_KEEP_0__의 가치 제안을 강조하세요.

-
앱 스토어 프로모션 이미지 (선택 사항)
__CAPGO_KEEP_0__의 이 구독을 위한 프로모션 이미지를 업로드하세요 (312x390 픽셀):
- 앱 스토어 구독 페이지에 표시됩니다.
- __CAPGO_KEEP_0__의 디자인과 일치해야 합니다.
- 구독 이름을 포함하여 명확성을 제공하세요.
-
구독 및 제출
클릭 저장 구독을 만들기 위해 제출하세요.
첫 번째 구독:
- 새로운 앱 버전과 함께 제출해야 함
- 다음 App Store 제출에 포함
- 독립적으로 제출할 수 없음
후속 구독:
- 구독 페이지에서 직접 제출할 수 있음
- 새로운 앱 버전이 필요하지 않음
- 첫 번째 구독 승인 후 사용 가능
구독 상태
구독 상태 섹션구독 상태는 다음과 중 하나가 될 것입니다.
| 상태 | 설명 | 테스트 가능 여부 |
|---|---|---|
| 미제공 메타데이터 | 설정 미완료 | Yes (sandbox) |
| 제출 준비 | 완료但미제출 | Yes (sandbox) |
| __CAPGO_KEEP_0__ | __CAPGO_KEEP_1__ | __CAPGO_KEEP_2__ |
| __CAPGO_KEEP_3__ | __CAPGO_KEEP_4__ | __CAPGO_KEEP_2__ |
| __CAPGO_KEEP_5__ | __CAPGO_KEEP_6__ | __CAPGO_KEEP_7__ |
| __CAPGO_KEEP_8__ | __CAPGO_KEEP_9__ | __CAPGO_KEEP_2__ |
앱에서 사용하기
앱에서 사용하기구독이 생성되면, 제품 ID를 참조하여 앱에서 사용하세요.
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch subscription products direct from StoreKitconst { 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 dataconst { 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 월간 결제 청구 계획.
Best Practices
Best Practices가격 전략
Pricing Strategy- 월간 계획: 입지 비용이 낮아져 습관을 형성
- 년간 계획: 더 좋은 가치, 높은 LTV, 낮은 churn
- 여러 계층: 기본, 프리미엄, 최고급 사용자 세그먼트를 위한
- 경쟁 분석: 유사한 앱의 가격을 조사하세요.
제품 ID
제목이 '제품 ID'인 섹션- 일관된 이름을 사용하세요:
company.app.tier_duration - 기간 및 등급을 포함한 ID:
premium_monthly,ultimate_annual - 제품 ID를 변경하지 마세요 (영구적입니다).
- 팀에 모든 제품 ID를 문서화하세요.
- 수입에 미치는 영향을 고려하세요.
- 공유 동작을 철저히 테스트하세요.
- Family Sharing
- 마케팅에서 공유 기능을 전달하는 방법을 설명하십시오
국제화
국제화- 모든 구독 이름과 설명을 번역하십시오
- 지역 가격 차이점을 고려하십시오
- 모든 지원 언어에서 표시 테스트하십시오
- 문화적으로 적합한 마케팅 언어를 사용하십시오
홍보 이미지
홍보 이미지- 일관된 시각 스타일 유지하십시오
- 구독 이름과 주요 이점 포함하십시오
- 시즌별 프로모션을 위해 업데이트 하십시오
- 애플리케이션의 전체 디자인 언어를 일치시킵니다.
일반 구독 패턴
일반 구독 패턴단일 티어 (프리미엄)
단일 티어 (프리미엄)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시간 기다려보세요.
구독 제출이 불가능한 경우:
- 필수 필드(이름, 설명, 가격) 모두 입력했는지 확인하세요.
- 최소한 한 개의 지역화 설정을 추가했는지 확인하세요.
- 은행/세금 정보가 승인되었는지 확인하세요.
- 첫 번째 구독(앱 버전이 필요함)이 있는지 확인하세요.
가족 공유 설정이 비활성화되었습니다:
- 이미 활성화되어 비활성화할 수 없습니다:
- 구독 세부 사항에서 확인:
- 어떤 문제가 발생해도 애플 지원팀에 문의하세요:
가격 계층이 사용할 수 없습니다:
- 일부 지역에서 제한될 수 있습니다:
- 대안 계층을 선택:
- 가격에 대한 문의는 애플에 문의하세요:
“Invalid Product ID” error:
- 올바른 Product ID 형식이 아닙니다:
- 역 도메인 형식이어야 합니다:
- 공백이나 특수 문자를 포함할 수 없습니다:
- 모든 제품에서 고유성을 확인하세요
다음 단계
‘다음 단계’라는 제목을 가진 섹션- 신규 구독자 유치를 위한 소개ductory 제안을 만듭니다 지원하는 연간 구독 제안을 위한 매월의 의무 계약 청구 계획을 판매합니다
- 샌드박스 테스트를 구성하여 구독을 테스트합니다 회원 탈퇴와 유지에 대한 승인 및 유지 제안을 위한 프로모션 제안을 설정합니다
- 구독 분석 추적을 구현합니다 추가 리소스
- __CAPGO_KEEP_0__
- __CAPGO_KEEP_0__
__CAPGO_KEEP_0__
추가 리소스자세한 내용은 자동 갱신 가능 구독에 대한 공식 애플 문서를 참조하십시오..
Create iOS Auto-Renewable Subscription에서 계속
Create iOS Auto-Renewable Subscription에서 계속Create iOS Auto-Renewable Subscription을 사용 중이라면 Create iOS Auto-Renewable Subscription을 스토어 승인 및 배포 계획을 위해 Create iOS Auto-Renewable Subscription을 Using @capgo/native-purchases Using @capgo/native-purchases의 Using @capgo/capacitor-in-app-review Using @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, and Using @capgo/capacitor-native-market for the native capability in Using @capgo/capacitor-native-market.