내용으로 건너뛰기

Configure iOS 샌드박스 테스트

GitHub

iOS에서 인앱 구매 테스트를 위해 App Store Connect와 테스트 장치에 대한 올바른 구성이 필요합니다. 이 가이드는 샌드박스 테스트를 시작하기 위해 필요한 모든 것을 다룹니다.

  • 애플 개발자 프로그램: 연간 갱신이 필요한 활성 회원
  • : 은행 및 세금 정보가 완료된 “유료 애플리케이션 계약”에 서명Xcode 프로젝트
  • __CAPGO_KEEP_0__: __CAPGO_KEEP_0__

설정 과정

설정 과정
  1. 애플리케이션 수수료 계약서에 서명

    앱 스토어 커넥트에서 계약, 세금 및 은행 및 완료:

    • 애플리케이션 수수료 계약서에 서명
    • 은행 정보 추가
    • __CAPGO_KEEP_0__

    __CAPGO_KEEP_1__

  2. __CAPGO_KEEP_2__

    __CAPGO_KEEP_3__ __CAPGO_KEEP_4__.

    __CAPGO_KEEP_5__ + __CAPGO_KEEP_6__

    __CAPGO_KEEP_7____CAPGO_KEEP_8__

    • __CAPGO_KEEP_9__ youremail+test@gmail.com
    • __CAPGO_KEEP_10__ youremail+test@icloud.com

    Apple ID가 이미 연결된 이메일 주소를 사용하지 마세요. 이메일 별칭을 사용할 수 있습니다: Gmail: iCloud:

  3. __CAPGO_KEEP_0__ (iOS 12+)

    iOS 12부터는 iTunes 계정에서 로그아웃하지 않아도 구매 테스트가 가능합니다.

    iOS 기기에서:

    1. 열기 설정
    2. 클릭 앱 스토어
    3. 스크롤을 아래로
    4. 클릭 샌드박스 계정
    5. 샌드박스 테스트 계정으로 로그인
  4. Xcode 프로젝트를 설정하세요

    Xcode 프로젝트가 다음 조건을 충족하는지 확인하세요

    Bundle Identifier

    • 개발자 센터에 등록된 식별자와 일치해야 합니다
    • App Store Connect에 등록된 식별자와 일치해야 합니다

    In-App Purchase Capability

    1. Xcode에서 프로젝트를 선택하세요
    2. Xcode에서 Signing & Capabilities
    3. 클릭 + 기능성
    4. 추가 앱 내 구매
  5. 앱 내 구매 제품 만들기

    앱 스토어 커넥트에서 앱을 선택하고, 앱 내 구매 제품을 만들 수 있습니다. (구독, 소비 가능한 제품 등).

    제품은 최소 '제출 준비' 상태여야 하며, 샌드박스 테스트를 위해.

  6. implementation 테스트

    테스트 디바이스에서 앱을 빌드하고 실행하세요. 구매 시도 시, 다음과 같은 메시지를 확인하세요.

    [환경: 샌드박스]

    이 확인은 샌드박스 환경에서 실제 돈을 지불하지 않음을 의미합니다.

  • 실제 요금 없음: 사andbox 모드에서 모든 구매가 무료입니다
  • 가속된 구독: 테스트를 빠르게 하기 위해 구독 기간이 단축됩니다
    • 1 주 구독 = 3분
    • 1 개월 구독 = 5분
    • 2 개월 구독 = 10분
    • 3 개월 구독 = 15분
    • 6 개월 구독 = 30분
    • 1 년 구독 = 1시간
  • 자동 갱신 제한: 샌드박스에서 구독이 6회 자동 갱신됩니다.
  • 즉시 취소: 취소된 구독은 즉시 만료됩니다.

샌드박스 계정 관리

샌드박스 계정 관리
  • 다양한 시나리오를 위한 여러 테스트 계정을 생성하세요.
  • 테스트 계정은 테스트 기기에서만 사용하세요.
  • 샌드박스 테스트를 위해 개인 Apple ID를 사용하지 마세요.
  • 테스트 계정은 지역 제한 없이 제품을 구매할 수 있습니다.

샌드박스 테스트 사용

샌드박스 테스트 사용
import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
const { isBillingSupported } = await NativePurchases.isBillingSupported();
if (!isBillingSupported) {
throw new Error('StoreKit not supported on this device');
}
// Fetch products (automatically uses sandbox when available)
const { products } = await NativePurchases.getProducts({
productIdentifiers: ['premium_monthly'],
productType: PURCHASE_TYPE.SUBS,
});
// Make test purchase
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Test purchase successful!', transaction.transactionId);

정상적으로 설정되면 다음을 관찰해야 합니다:

  1. 샌드박스 배너 구매 중에: '[환경: 샌드박스]'
  2. 상품이 로드됩니다 성공적으로
  3. 구매가 실제 요금으로 청구되지 않습니다 영수증이 올바르게 검증됩니다
  4. 정확히 __CAPGO_KEEP_0__
  5. __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ (가속된 속도로)

__CAPGO_KEEP_0__

문제 해결

제품이 로드되지 않음:

  • App Store Connect의 Bundle Identifier가 정확한지 확인하세요.
  • 계약서가 서명되고 승인되었는지 확인하세요.
  • 제품이 '제출 준비' 상태 이상인지 확인하세요.
  • 제품을 생성한 후 2-3시간 기다려보세요.

iTunes Store에 연결할 수 없습니다.:

  • 샌드박스 계정이 올바르게 설정되었는지 확인하세요.
  • 디바이스가 인터넷에 연결되어 있는지 확인하세요.
  • Try signing out and back into sandbox account
  • 앱을 재시작하세요

구매가 실패하는 경우:

  • Xcode 콘솔에서 오류 메시지를 확인하세요
  • In-App 구매 기능이 활성화되어 있는지 확인하세요
  • Apple ID가 아닌 sandbox 계정 이메일을 사용하세요
  • 새로운 sandbox 테스트 계정을 생성해 보세요

수령증 검증 오류:

  • 테스트 시 sandbox 수령증 검증 엔드포인트를 사용하세요
  • 생산 엔드포인트: https://buy.itunes.apple.com/verifyReceipt
  • 테스트 엔드포인트: https://sandbox.itunes.apple.com/verifyReceipt
  • native-purchases 플러그인은 이 작업을 자동으로 처리합니다

잘못된 구독 기간:

  • 테스트 환경에서 구독은 가속되므로 기억해 두세요.
  • 위의 변환 차트를 참조하여 예상 기간을 확인하세요.
  • 테스트 환경에서 구독은 최대 6회 자동 갱신됩니다.

“This Apple ID has not yet been used in the iTunes Store”:

  • 새로운 테스트 계정에서 이.apple ID가 아직 iTunes Store에서 사용되지 않았습니다.
  • 새로운 테스트 계정에서 이.apple ID가 아직 iTunes Store에서 사용되지 않았습니다.
  • 계정을 활성화하기 위해 구매를 계속하세요.

처음 사용할 때만 발생합니다.

Best Practices
  1. 테스트 시나리오를 위한 여러 개의 테스트 계정을 생성하세요. 다양한 테스트 시나리오를 위한 여러 개의 테스트 계정을 생성하세요.
  2. __CAPGO_KEEP_0__ 모든 구독 기간을 테스트하여 동작을 확인하세요. __CAPGO_KEEP_0__ 동작을 확인하기 위해
  3. __CAPGO_KEEP_0__ 취소와 갱신 흐름을 테스트하세요. __CAPGO_KEEP_0__
  4. __CAPGO_KEEP_0__ 수령 확인이 올바르게 작동하는지 확인하세요. __CAPGO_KEEP_0__
  5. __CAPGO_KEEP_0__ 구매 복원 기능을 테스트하세요. __CAPGO_KEEP_0__
  6. __CAPGO_KEEP_0__ 구독 업그레이드/다운그레이드 동작을 확인하세요. __CAPGO_KEEP_0__
  7. __CAPGO_KEEP_0__ 네트워크 조건이 좋지 않은 환경에서 테스트하세요.

__CAPGO_KEEP_0__ 프로덕션과 샌드박스 환경을 비교하세요.

제작 vs. 샌드박스
기능샌드박스제작
실제 요금아니요
구독 기간가속일반
자동 갱신 제한6 번무제한
취소 효과즉시기간 종료
수령지 엔드포인트샌드박스 URL생산 URL
테스트 계정만아니오

추가 리소스

추가 리소스 섹션

자세한 내용은 공식 Apple StoreKit 문서 샌드박스 테스트에 대한

Configure iOS Sandbox Testing

Configure iOS Sandbox Testing

사용 중이라면 Configure iOS Sandbox Testing 스토어 승인 및 배포를 계획하는 데 사용하는 경우 Using @capgo/native-purchases Using @capgo/native-purchases @capgo/capacitor-in-app-review for the implementation detail in @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.