Create iOS Subscription Group
Copy a setup prompt with the install steps and the full markdown guide for this plugin.
iOS 앱에서 여러 구독 수준을 관리하고 조직하는 데 필수적인 구독 그룹입니다. 구독 그룹이 어떻게 작동하는지 이해하는 것은 업그레이드, 다운그레이드 및 크로스 그레이드 기능을 구현하는 데 중요합니다.
What is a Subscription Group?
구독 그룹이란 무엇입니까?구독 그룹은 사용자가 선택할 수 있는 관련된 구독의 집합입니다. 사용자는 한 그룹 내에서 한 번에 하나의 구독만 구독할 수 있습니다. 구독을 변경할 때 Apple은 자동으로 전환을 처리합니다.
구독 그룹의 중요성
구독 그룹의 중요성구독 그룹은 다음과 같은 기능을 제공합니다.
- 등급별 가격: 기본, 프리미엄 및 최고급 계획을 제공합니다.
- 다양한 기간: 월간, 연간 및 영구 옵션
- 구독 변경의 자동 처리: 구독 변경을 자동으로 처리합니다.
- 간소화된 관리: 관련 구독을 그룹화하여 관리합니다.
구독 등급
구독 등급그룹 내에서 각 구독은 가치가 가장 높은 등급 (1 등급)부터 가치가 가장 낮은 등급까지 등급付け되어야 합니다. 이 등급付け은 구독 변경이 분류되는 방법을 결정합니다.

등급 예시
구독 등급 예시1 등급 (가장 높은 가치)
- 프리미엄 연간 ($99.99/년)
- 최종 월간 ($19.99/월)
2 등급 (중간 가치)
- 표준 연간 ($49.99/년)
- __CAPGO_KEEP_0__
레벨 3 (가장 낮은 가격)
- __CAPGO_KEEP_1__
- __CAPGO_KEEP_2__
구독 변경 유형
구독 변경 유형애플은 등급 순위에 따라 3 가지 유형의 구독 변경을 자동으로 처리합니다.
1. 업그레이드
상위 등급으로이동 등급 구독 (예: 등급 2 → 등급 1).
행동:
- 효과 즉시
- 사용자는 남은 시간에 대한 새로운 구독은 바로 시작됩니다.
- 예시:
클립보드에 복사
// User currently has: Standard Monthly (Level 2)// User upgrades to: Premium Annual (Level 1)// Result: Immediate access to Premium, refund for unused Standard time제목이 "2. 등급 다운그레이드"인 섹션
2. Downgrade다음 구독 등급으로 이동 (예: 등급 1 → 등급 2). 행동: 다음 갱신일부터
사용자는 현재 구독을 유지할 때까지 기간이 끝날 때까지
- 새로운 구독은 만료 후 자동으로 시작됩니다. 예시:
- 클립보드에 복사
- 3. 등급 상승
3. 등급 상승
// User currently has: Premium Annual (Level 1)// User downgrades to: Standard Monthly (Level 2)// Result: Premium access continues until annual renewal date, then switches3. Crossgrade
Behavior:다른 구독으로 전환 같은 등급 수준에서.
행동은 지속 기간에 따라 달라집니다:
다른 지속 기간 → 다음과 같이 행동 다운그레이드
- 다음 재정의 날짜부터 적용
- 예시: 월간 프리미엄 (등급 1) → 연간 프리미엄 (등급 1)
같은 지속 기간 → 다음과 같이 행동 업그레이드
- 즉시 적용
- 예시: 프리미엄 월간 (레벨 1) → 최고 월간 (레벨 1)
구독 그룹 만들기
구독 그룹 만들기-
구독으로 이동
앱 스토어 연결에서 앱을 선택하고 Monetize > 구독.
-
그룹 만들기
그룹 만들기 버튼을 클릭합니다. + 그룹 이름
-
구독 그룹에 포함된 구독을 반영하는 설명적인 이름을 선택하세요:
Choose a descriptive name that reflects the subscriptions it contains:
- 프리미엄 접근권한
- “클라우드 스토리지 플랜”
- “프로 기능”
-
구독 추가
그룹을 생성한 후 각 구독에 개별 구독을 추가합니다. 각 구독은 등급 순위를 가집니다.
-
등급 순위 설정
가장 높은 가격의 구독부터 가장 낮은 가격의 구독까지 순서를 정렬합니다. 고려해야 할 사항은:
- 연간 플랜은 월간 플랜보다 등급이 높습니다.
- 가격이 높은 계층은 가격이 낮은 계층보다 위에 있습니다.
- 최종/최상위 계층은 가장 높은 등급을 가집니다.
앱에서 사용하는 방법
“앱에서 사용하는 방법”이라는 제목의 섹션native-purchases 플러그인은 자동으로 구독 그룹 논리를 처리합니다:
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Fetch all subscriptions in a groupconst { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly', 'premium_annual', 'ultimate_monthly'], productType: PURCHASE_TYPE.SUBS,});
// Display current subscription using StoreKit transactionsconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const activeSubs = purchases.filter((purchase) => purchase.isActive);
// Detect pending downgrade/cancellation (StoreKit sets willCancel === true)const pendingChange = purchases.find((purchase) => purchase.willCancel === true);if (pendingChange) { console.log('Subscription will stop auto-renewing on', pendingChange.expirationDate);}
// Purchase (StoreKit handles upgrades/downgrades automatically)await NativePurchases.purchaseProduct({ productIdentifier: 'premium_annual', productType: PURCHASE_TYPE.SUBS,});
// Listen for StoreKit updates (fires on upgrades/downgrades/refunds)NativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription updated:', transaction);});구독 변경 처리
구독 변경 처리 섹션변경 유형 감지
변경 유형 감지 섹션import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
// Get current subscription infoconst { purchases } = await NativePurchases.getPurchases({ productType: PURCHASE_TYPE.SUBS,});
const currentSubscription = purchases.find( (purchase) => purchase.subscriptionState === 'subscribed',);
if (currentSubscription) { // StoreKit reports if user cancelled auto-renew if (currentSubscription.willCancel) { console.log( `User cancelled. Access remains until ${currentSubscription.expirationDate}`, ); }
if (currentSubscription.isUpgraded) { console.log('User recently upgraded to this plan.'); }}
// Listen for automatic upgrades/downgradesNativePurchases.addListener('transactionUpdated', (transaction) => { console.log('Subscription changed!', transaction); if (transaction.subscriptionState === 'revoked') { revokeAccess(); } else if (transaction.isActive) { unlockPremiumFeatures(); }});사용자 커뮤니케이션
변경 동작을 항상 명확하게 전달하세요:업그레이드 시:
“프리미엄 기능에 즉시 접근하실 수 있습니다. 현재 구독을 프로라이트로 계산하겠습니다.”
다운그레이드 시:
For Downgrades:
“[renewal date]까지 프리미엄 접근을 유지할 것입니다. 그 다음은 표준으로 전환됩니다.”
크로스 그레이드에 대한 경우:
“다음 재정의 시점에 [date]에 따라 연간 요금제로 변경될 것입니다.”
서버 모니터링
제목: '서버 모니터링'애플의 App Store Server Notifications v2 또는 자신의 수신증명 백엔드와 함께 StoreKit 변경 사항을 데이터베이스에 반영하세요. 서버通知를 클라이언트와 백엔드가 동기화되도록 listener와 pair하세요. transactionUpdated 최선의 방법
제목: '최선의 방법'
그룹 조직제목: '그룹 조직'
관련 구독을 동일한 그룹에 유지하세요- serverMonitoring
- 다른 기능을 섞지 마세요 (예: 저장소 및 광고 제거)
- 다른 기능 집합에 대한 별도의 그룹을 만드세요
레벨 랭킹 전략
레벨 랭킹 전략- 연간 계획 → 월간 계획보다 높은 등급 (같은 등급)
- 가격이 높은 등급 → 높은 등급
- 가치뿐만 아니라 가격만큼 고려하세요
사용자 경험
현재 구독을 명확하게 표시하세요- 그룹 내에 모든 옵션을 표시하세요
- 즉시 적용되는 변경 사항과 재정의 변경 사항을 구분하세요
- __CAPGO_KEEP_0__
- __CAPGO_KEEP_0__ 쉽게 변경할 수 있는 계획들
__CAPGO_KEEP_0__ 테스트
__CAPGO_KEEP_0__ 테스트- __CAPGO_KEEP_0__ 모든 업그레이드 시나리오 테스트
- __CAPGO_KEEP_0__ 모든 다운그레이드 시나리오 테스트
- __CAPGO_KEEP_0__ 크로스 그레이드 동작 확인
- __CAPGO_KEEP_0__ 웹훅 작동 확인
__CAPGO_KEEP_0__ 일반적인 시나리오
__CAPGO_KEEP_0__ 일반적인 시나리오__CAPGO_KEEP_0__ 1. 월간 3계층 계획 시나리오
__CAPGO_KEEP_0__ 1. 월간 3계층 계획 시나리오Level 1: Ultimate Monthly ($19.99)Level 2: Premium Monthly ($9.99)Level 3: Basic Monthly ($4.99)- 기본 → 프리미엄: 즉시 업그레이드
- 프리미엄 → 최고: 즉시 업그레이드
- 최고 → 프리미엄: 재정의 시 하향 조정
- 기본 → 최고: 즉시 업그레이드
시나리오 2: 혼합 지속 기간 계획
제목 "시나리오 2: 혼합 지속 기간 계획"Level 1: Premium Annual ($99.99/year)Level 2: Premium Monthly ($9.99/month)- 월 → 연: 재정의 시 크로스 그레이드
- 연 → 월: 재정의 시 하향 조정
시나리오 3: 다중 층 다중 지속 기간
제목 "시나리오 3: 다중 층 다중 지속 기간"Level 1: Ultimate Annual ($199/year)Level 2: Ultimate Monthly ($19.99/month)Level 3: Premium Annual ($99/year)Level 4: Premium Monthly ($9.99/month)Level 5: Basic Annual ($49/year)Level 6: Basic Monthly ($4.99/month)이 설정은 최대 유연성을 제공하면서 명확한 업그레이드/다운그레이드 로직을 유지합니다.
문제 해결
제목: 문제 해결그룹에 표시되지 않는 구독:
- 그룹에 할당된 것이 맞는지 확인하세요.
- 최소 “제출 준비” 상태 이상인지 확인하세요.
- 제품 ID가 정확한지 확인하세요.
업그레이드/다운그레이드 동작이 잘못된 경우:
- 레벨 순위가 올바른지 확인하세요 (1 = 가장 높은 순위)
- 구독 계층이 합리적인지 확인하세요.
- 레벨이 올바르게 설정되어 있는지 확인하세요.
다른 그룹의 제품:
- 사용자는 동시에 여러 그룹에 구독할 수 있습니다
- 이것은 의도된 것입니다 - 관련 제품을 동일한 그룹에 유지하세요
getActiveProducts가 여러 구독을 보여주고 있습니다.
- 구독이 다른 그룹에 있는지 확인하세요
- 사용자가 가족 공유를 통해 구독하지 않았는지 확인하세요
- App Store Connect에서 구독 상태를 확인하세요
추가 리소스
추가 리소스더 많은 정보를 알고 싶다면 공식 Apple 문서에서 구독 그룹에 대한 자세한 내용을 확인하세요.
Create iOS Subscription Group에서 계속하세요
Create iOS Subscription Group에서 계속하세요If you are using __CAPGO_KEEP_0__ iOS 구독 그룹 만들기 스토어 승인 및 배포를 계획하고, __CAPGO_KEEP_0__와 연결하세요. capgo/native-purchases를 사용하여 capgo/native-purchases의 네이티브 기능을 사용하세요. capgo/__CAPGO_KEEP_1__-in-app-review를 사용하여 capgo/__CAPGO_KEEP_1__-in-app-review의 구현 세부 정보를 확인하세요. capgo/capacitor-in-app-review를 사용하여 capgo/capacitor-in-app-review의 네이티브 기능을 사용하세요. capgo/capacitor-native-market를 사용하여 capgo/capacitor-native-market의 구현 세부 정보를 확인하세요. capgo/capacitor-native-market를 사용하여 capgo/capacitor-native-market의 네이티브 기능을 사용하세요. and capgo/capacitor-native-market and capgo/capacitor-native-market and capgo/capacitor-native-market and capgo/capacitor-native-market 자연스러운 기능을 위한 원시 기능 사용 @capgo/capacitor-원시-마켓.