iOS 자동 갱신 구독 생성
자동 갱신 구독을 통해 iOS 앱의 콘텐츠, 서비스 또는 프리미엄 기능에 반복적으로 액세스할 수 있습니다. 이 가이드는 App Store Connect에서 구독을 만드는 과정을 안내합니다.
자동 갱신 구독은 사용자가 취소할 때까지 각 결제 기간이 끝날 때 자동으로 갱신됩니다. 다음과 같은 경우에 적합합니다.
- 프리미엄 콘텐츠 및 기능
- 광고 없는 경험
- 클라우드 스토리지 및 동기화
- 스트리밍 서비스
- 전문 도구 및 유틸리티
구독을 만들기 전에 다음을 수행해야 합니다.
- 구독을 정리하려면 구독 그룹을 생성하세요.
- 활성 Apple 개발자 프로그램 멤버십을 보유하고 있습니다.
- App Store Connect에서 은행 및 세금 정보를 작성하세요.
구독 만들기
Section titled “구독 만들기”-
구독으로 이동
App Store Connect에서 앱을 선택하고 수익 창출 > 구독으로 이동합니다.
구독 그룹을 선택하거나 필요한 경우 새 구독 그룹을 만드세요.

-
새 구독 만들기
새 구독을 추가하려면 구독 그룹 옆에 있는 + 아이콘을 클릭하세요.
-
기본정보 입력
참조 이름: 내부 사용을 위한 설명 이름(고객에게 표시되지 않음)
- 예: “Premium Monthly”, “Ultimate Annual”, “기본 플랜”
제품 ID: 이 구독에 대한 고유 식별자(나중에 변경할 수 없음)
- 형식:
com.yourcompany.yourapp.premium_monthly - 밑줄과 함께 설명이 포함된 소문자 이름을 사용하세요.
- 기본 구매 플러그인 구성에 필요합니다.

-
기간 구성
사용 가능한 옵션 중에서 구독 기간을 선택하세요.
- 1주
- 1개월
- 2개월
- 3개월
- 6개월
- 1년
기간에 따라 사용자에게 비용이 청구되는 빈도가 결정됩니다.
-
가격 설정
가격을 구성하려면 구독 가격 추가를 클릭하세요.
기본 지역: 주요 시장(일반적으로 국가)을 선택합니다.
가격: 구독 가격을 설정하세요.
- Apple는 자동으로 다른 통화로 변환됩니다.
- Apple의 가격대 중에서 선택하세요.
- 인지된 가치와 시장 가격을 고려

-
가족 공유(선택 사항)
최대 6명의 가족 구성원이 구독에 액세스할 수 있도록 허용하는 가족 공유를 활성화할지 여부를 결정합니다.
:::주의 가족 공유가 활성화되면 이 제품에 대해 비활성화할 수 없습니다. :::
다음의 경우 활성화:
- 가족이 사용하기에 적합한 콘텐츠
- 가치 제안을 높이고 싶으신 분
- 귀하의 비즈니스 모델이 이를 뒷받침합니다.
다음과 같은 경우에는 활성화하지 마세요
- 구독은 개인 용도로만 사용 가능
- 콘텐츠는 사용자에게 개인화됩니다.
- 사용자당 수익을 극대화하고 싶으신 분
-
현지화 추가
앱이 지원하는 모든 언어로 구독 표시 정보를 추가하세요.
구독 표시 이름: 고객에게 표시되는 이름(예: “Premium Monthly”)
설명: 구독에 포함된 내용에 대한 간략한 설명
- 간결하고 이익 중심으로 작성하세요.
- 주요 기능 언급
- 가치 제안 강조
8. App Store 프로모션 이미지(선택사항)
이 구독에 대한 프로모션 이미지를 업로드하세요(312x390픽셀):
- App Store 구독 페이지에 표시됩니다.
- 앱 디자인과 일치해야 합니다.
- 명확성을 위해 구독 이름을 포함합니다.
:::참고 이미지는 초기 제출 시 선택 사항이지만 App Store에 홍보용으로 표시하려면 필수입니다. 나중에 추가할 수 있습니다. :::
-
저장 및 제출
구독을 생성하려면 저장을 클릭하세요.
첫 번째 구독의 경우:
- 새로운 앱 버전으로 제출해야 합니다.
- 다음 App Store 제출에 포함
- 단독으로 제출할 수 없음
후속 구독의 경우:
- 구독 페이지에서 직접 제출 가능
- 새로운 앱 버전이 필요하지 않습니다.
- 최초 가입 승인 후 이용 가능
구독 상태는 다음 중 하나입니다.
| 상태 | 설명 | 테스트할 수 있나요? |
|---|---|---|
| 메타데이터 누락 | 불완전한 설정 | 예(샌드박스) |
| 제출 준비 완료 | 완료되었으나 제출되지 않음 | 예(샌드박스) |
| 검토를 기다리는 중 | Apple에 제출됨 | 예(샌드박스) |
| 검토 중 | Apple에서 검토 중 | 예(샌드박스) |
| 승인됨 | 구매 가능 | 예 |
| 거부됨 | 변경이 필요함 | 예(샌드박스) |
앱에서 사용하기
Section titled “앱에서 사용하기”구독이 생성되면 제품 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();}- 월간 요금제: 진입 장벽을 낮추고 습관을 형성합니다.
- 연간 요금제: 더 나은 가치, 더 높은 LTV, 더 낮은 이탈률
- 다양한 계층: 다양한 사용자 세그먼트를 위한 기본, 프리미엄, 얼티밋
- 경쟁력 분석: 유사한 앱의 가격 조사
- 일관된 이름 사용:
company.app.tier_duration - ID에 등급 및 기간 포함:
premium_monthly,ultimate_annual - 제품 ID를 변경하지 마세요(영구적임).
- 팀의 모든 제품 ID를 문서화하세요.
- 가족 중심 앱(게임, 교육, 엔터테인먼트)에 사용 가능
- 수익에 미치는 영향 고려
- 공유 행위를 철저하게 테스트
- 마케팅에서 공유능력을 전달한다.
- 모든 구독 이름과 설명 번역
- 지역별 가격 차이를 고려하세요.
- 지원되는 모든 언어로 디스플레이 테스트
- 문화적으로 적절한 마케팅 언어를 사용합니다.
프로모션 이미지
Section titled “프로모션 이미지”- 일관된 시각적 스타일 유지
- 구독 이름 및 주요 혜택 포함
- 시즌 프로모션 업데이트
- 앱의 전반적인 디자인 언어와 일치
일반적인 구독 패턴
Section titled “일반적인 구독 패턴”단일 계층(부분 유료화)
Section titled “단일 계층(부분 유료화)”Free App + Premium Subscription- Basic: Free (limited features)- Premium Monthly: $4.99- Premium Annual: $39.99 (save 33%)다중 계층(좋음, 더 좋음, 최고)
Section titled “다중 계층(좋음, 더 좋음, 최고)”- Basic Monthly: $4.99- Premium Monthly: $9.99- Ultimate Monthly: $19.99
- Basic Annual: $49.99- Premium Annual: $99.99- Ultimate Annual: $199.99소모품 + 구독 하이브리드
Section titled “소모품 + 구독 하이브리드”- Credit packs (consumable)- Monthly subscription (unlimited credits)- Annual subscription (unlimited + bonus features)앱에서 구독이 로드되지 않음:
- 제품 ID가 정확히 일치하는지 확인하세요(대소문자 구분).
- 구독이 구독 그룹에 있는지 확인하세요.
- 번들 식별자가 App Store Connect과 일치하는지 확인하세요.
- 상품 생성 후 2~3시간 대기구독을 제출할 수 없습니다:
- 필수 항목(이름, 설명, 가격)을 모두 작성하세요.
- 하나 이상의 현지화를 추가하세요.
- 은행/세금 정보가 승인되었는지 확인하세요.
- 첫 번째 구독 여부 확인(앱 버전 필요)
가족 공유 토글이 비활성화되었습니다:
- 이미 활성화되어 있음(비활성화할 수 없음)
- 구독 내역 확인
- 문제가 있는 경우 Apple 지원팀에 문의하세요.
사용할 수 없는 가격대:
- 일부 지역에서는 이용이 제한될 수 있습니다.
- 대체 계층 선택
- 가격 관련 질문은 Apple에 문의하세요.
“잘못된 제품 ID” 오류:
- 역도메인 형식이어야 합니다.
- 공백이나 특수문자를 포함할 수 없습니다.
- 오타가 있는지 확인하세요
- 모든 제품에 걸쳐 고유성을 확인합니다.
- 신규 구독자를 유치하기 위한 소개 제안 만들기
- 구독 테스트를 위한 샌드박스 테스트 구성
- 재구매 및 유지를 위한 프로모션 제안 설정
- 구독 분석 추적 구현
추가 리소스
Section titled “추가 리소스”자세한 내용은 자동 갱신 구독에 대한 공식 Apple 문서를 참조하세요.