Apple은 Xcode의 로컬 StoreKit 테스트와 Sandbox 구매 테스트를 별도 경로로 안내합니다(Xcode StoreKit Testing 설정, Sandbox 인앱 구매 테스트). 따라서 StoreKit 혜택 코드 테스트는 로컬에서 구매 로직을 먼저 검증하고, App Store Connect에서 만든 Sandbox 혜택 코드와 Sandbox Apple Account로 실제 교환을 따로 확인해야 합니다. 로컬 설정에서 구매가 성공해도 Sandbox 코드 교환까지 통과한 것은 아닙니다.
자동 갱신 구독에 혜택 코드 입력 기능을 추가하는 독립 개발자라면 두 테스트의 경계를 확인할 수 있습니다.
App Store Connect에서 혜택 활동을 설정하고 Sandbox 교환을 준비하는 담당자라면 테스트 증거를 정리할 수 있습니다.
거래와 구독 권한을 함께 관리하는 소규모 팀이라면 앱과 서버의 처리 결과가 일치하는지 점검할 수 있습니다.
구매 로직 담당자를 위한 StoreKit 혜택 코드 테스트
Xcode의 StoreKit Testing은 프로젝트에 StoreKit 구성을 추가해 상품과 구매 흐름을 로컬에서 검증하는 데 적합합니다. 구성 파일에서 테스트할 상품을 준비하고, 구매 결과에 따라 앱이 구독 상태와 화면을 올바르게 갱신하는지 확인합니다. 설정 방법은 Apple의 Xcode StoreKit Testing 안내를 기준으로 삼으세요.
이 경로에서 확인할 수 있는 것은 앱의 구매 처리와 권한 반영 로직입니다. 반면 App Store Connect에서 생성한 코드가 Sandbox에서 교환되는지, 실제 테스트 거래가 앱과 서버에 전달되는지는 로컬 구성만으로 입증되지 않습니다.
Xcode 로컬 구성으로 혜택 코드를 시험할 수 있나요?
로컬 구성으로 상품, 구매 흐름, 거래 처리 이후의 앱 반응을 시험할 수 있습니다. 그러나 로컬 테스트 상품이나 테스트 거래 결과를 Sandbox 혜택 코드의 교환 성공 증거로 사용해서는 안 됩니다. 테스트 대상을 선택할 때는 “구매 상태에 따라 앱이 제대로 작동하는가”와 “발급한 코드가 테스트 계정에서 실제로 교환되는가”를 구분해야 합니다.
- [ ] 프로젝트의 StoreKit 구성에 테스트할 구독 상품이 포함되어 있는지 확인합니다.
- [ ] 구매 결과 뒤에 앱이 표시하는 구독 상태와 기능 접근 권한을 확인합니다.
- [ ] 테스트 거래가 끝난 뒤에도 화면이나 캐시에 이전 권한이 남지 않는지 살펴봅니다.
- [ ] 이 결과를 Sandbox 혜택 코드 교환 완료로 기록하지 않습니다.
App Store Connect 설정 담당자를 위한 코드 준비
Sandbox 교환 전에 App Store Connect에서 구독 상품과 혜택 활동의 구성이 테스트 목적에 맞는지 확인해야 합니다. 혜택 코드 설정은 Apple의 구독 혜택 코드 설정 안내에 따라 점검하고, 테스트용 코드와 고객 대상 정식 코드는 별도로 관리하세요. 테스트 중 사용한 코드나 계정 정보를 실제 마케팅 배포 자료에 섞지 않도록 접근 권한과 기록 위치도 분리하는 편이 안전합니다.
Sandbox 혜택 코드는 어디서 만들고 교환하나요?
코드는 App Store Connect에서 혜택 활동을 설정해 준비하고, 교환 검수는 Sandbox Apple Account와 연결된 테스트 절차에서 진행합니다. 계정 준비와 구매 테스트의 세부 조건은 Sandbox Apple Account 생성 안내와 Sandbox 구매 테스트 문서를 함께 확인하세요. 코드가 준비된 것과 사용자가 교환해 거래가 처리된 것은 별개의 상태입니다.
- [ ] 테스트 대상 구독 상품과 혜택 활동이 올바르게 연결되어 있는지 확인합니다.
- [ ] 사용할 Sandbox Apple Account를 준비하고 테스트 목적에 맞는 계정인지 기록합니다.
- [ ] 테스트 코드와 고객 대상 정식 코드를 서로 다른 기록과 배포 경로로 관리합니다.
- [ ] 코드 입력 후 앱과 서버에서 확인할 거래 및 권한 증거를 미리 정합니다.
테스트 코드가 제출되었다는 화면만으로 검수를 끝내지 마세요. 코드 입력, 거래 확인, 앱의 권한 반영은 서로 다른 확인 지점입니다.
기기 교환 담당자를 위한 진입 경로 확인
Sandbox 코드를 실제로 교환할 때는 테스트할 Apple 기기와 Sandbox 계정 세션을 준비하고, 시스템의 교환 진입 경로에서 코드 입력 결과를 확인합니다. 테스트 기록에는 사용한 진입 경로, 코드 제출 결과, 이후 확인한 거래 상태를 함께 남기세요. 이 기록이 있어야 “코드가 입력되었다”와 “앱이 거래를 받아 구독 권한을 처리했다”를 혼동하지 않습니다.
앱 안에서 혜택 코드 입력 흐름도 시험하려면 어떻게 하나요?
앱 내 교환을 검수하려면 먼저 앱이 해당 StoreKit 흐름을 구현했는지 확인해야 합니다. 앱에 입력 화면이 있다는 사실만으로 교환 기능이 완성되는 것은 아닙니다. Apple의 앱 내 혜택 코드 지원 문서를 기준으로 구현 범위를 확인하고, Sandbox에서 앱 진입부터 거래 후 화면 변화까지 별도로 테스트하세요. 시스템의 앱 외부 구매 흐름도 살펴야 한다면 앱 외부에서 진행한 구매 테스트 안내를 참고할 수 있습니다.
- [ ] 시스템 교환 경로에서 코드 제출과 후속 거래를 확인합니다.
- [ ] 앱 내 입력 경로를 제공한다면 같은 Sandbox 환경에서 앱의 시작부터 결과 화면까지 확인합니다.
- [ ] 교환 진입 경로와 앱에 표시된 구독 상태를 테스트 기록에 함께 남깁니다.
- [ ] 제출 결과만 보이고 거래나 권한 상태를 확인할 수 없다면 검수를 완료로 처리하지 않습니다.
구독과 서버를 맡은 팀을 위한 거래 증거
혜택 코드 교환 후에는 기존 구독 처리 흐름을 따라 거래가 앱에 전달되는지, 앱이 거래에 맞는 권한을 열어 주는지 확인해야 합니다. 거래의 확인 기준은 StoreKit Transaction 문서를 참고하세요. 앱에 표시된 상태와 서버가 기록한 상태가 다르면 코드 교환 자체의 성공 여부와 별개로 권한 처리 문제를 조사해야 합니다.
App Store Server Notifications를 사용한다면 Sandbox 이벤트와 운영 환경 기록이 섞이지 않도록 환경 구분을 확인합니다. 알림 설정은 Apple의 서버 알림 활성화 안내를 참고하고, 테스트 이벤트가 운영 구독 데이터로 취급되지 않는지 점검하세요.
- [ ] 거래 증거와 앱의 구독 권한 상태가 일치하는지 확인합니다.
- [ ] 서버가 거래를 처리하는 경우 앱 화면과 서버 기록을 대조합니다.
- [ ] 서버 알림을 받는다면 Sandbox 이벤트와 운영 이벤트를 구분해 저장하고 조회합니다.
- [ ] 거래가 확인되지 않았거나 앱과 서버의 권한 상태가 다르면 통과가 아니라 추가 조사로 분류합니다.
출시 담당자를 위한 통과 기준과 선택 도구
아래 비교는 어떤 테스트 결과가 어떤 결론을 뒷받침하는지 구분하기 위한 것입니다. 각 경로를 모두 같은 종류의 “구매 성공”으로 기록하지 마세요.
| 선택지 | 검증할 수 있는 범위 | 이 결과만으로 판단하면 안 되는 항목 |
|---|---|---|
| Xcode StoreKit Testing | 로컬 구성에서 구매 흐름과 앱의 거래·권한 처리 로직을 확인합니다. | App Store Connect 코드의 Sandbox 교환 성공 |
| Sandbox 혜택 코드 | Sandbox 계정에서 준비한 코드의 교환과 관련 거래 처리를 확인합니다. | 정식 코드의 고객 대상 운영 결과 |
| 앱 내 교환 경로 | 기능을 구현한 앱에서 코드 입력과 그 뒤의 거래·권한 반영을 확인합니다. | 시스템 교환 경로만 확인한 결과로 앱 내 흐름까지 완료했다는 판단 |
통과는 의도한 교환 경로에서 Sandbox 거래가 확인되고 앱의 구독 권한이 거래 결과와 일치하며, 서버 처리를 사용하는 경우 서버 기록도 같은 상태를 보일 때로 제한합니다. 미통과는 코드 제출 뒤 거래가 확인되지 않거나 권한이 잘못 열리는 경우입니다. 추가 검수는 로컬 구매만 확인했거나 앱 내 교환을 제공하면서 시스템 경로만 시험한 경우입니다.
- [ ] 로컬 StoreKit 테스트 결과와 Sandbox 교환 결과를 별도 기록으로 보관합니다.
- [ ] 테스트에 사용한 교환 경로와 계정, 거래 확인 자료를 남깁니다.
- [ ] 앱과 서버의 권한 상태가 일치하는지 확인한 뒤 출시 검수 결과를 결정합니다.
- [ ] 일부 경로를 실행하지 않았다면 완료로 단정하지 않고 추가 검수로 남깁니다.
원격 맥 환경이 필요한 팀의 작업 경계
원격 맥은 Xcode 프로젝트를 열고 StoreKit 구성을 편집하거나 빌드·로컬 테스트를 수행할 작업 환경으로 고려할 수 있습니다. 다만 원격 빌드가 성공해도 Sandbox 코드 교환, 테스트 기기의 실제 동작, 서버의 권한 처리가 자동으로 검증되는 것은 아닙니다. 계정 로그인과 기기에서 수행할 검수는 프로젝트의 접근 정책과 실제 테스트 조건에 맞춰 별도로 준비해야 합니다.
로컬에 Xcode용 맥이 없어 개발 환경을 마련해야 한다면 RUVCLOUD의 요금 안내와 이용 신청 정보를 확인해 필요한 작업 기간과 접근 조건을 비교할 수 있습니다. 이미 안정적인 맥에서 장기간 반복 작업을 하고 있거나, 원격 환경으로 대체할 수 없는 기기 검수가 핵심이라면 직접 보유한 장비가 더 적합할 수 있습니다. 반대로 개발용 맥을 별도로 구매하지 않고 빌드나 로컬 StoreKit 검증 환경이 필요한 경우에는 원격 맥을 보조 수단으로 검토하되, Sandbox 교환과 실제 권한 검수는 별도 절차로 남겨 두세요.