Report: State of in-app subscriptions in the US 2023 Get a report

iOS 인앱 구매, 5부: SKError (SKError) 코드 목록 및 처리 방법

Kirill Potekhin

Updated: 3월 20, 2023

Content

62fdf1ee3ac056e02f757705 jp android tutorial 1 configuration 9 5

이게시물에서는 SKErrors에대해 다룰 것인데,어떤문제가 생기고 어떻게 해야하는지 알아보겠습니다.각오류가 발생하는 이유는 무엇이고,어떻게처리하며,오류알림에 어떤 메시지를 표시해야 하는지 살펴봅니다.

SKError.Code.unknown,code 0

의미.알수 없는 이유로 오류가 발생했습니다.

해결방법.개발자측의 조치가 필요하지 않습니다.이오류는 iOS14 이상시뮬레이터를 사용하면서 제품을 가져오려고 할 때,요청에도나타납니다.이경우 제품을 받으려면,StoreKit 로컬테스트를 사용하거나,iOS 14 미만의iOS 버전이설치된 실제 장치/에뮬레이터를사용하십시오.

표시할메시지.죄송합니다.알수 없는 이유로 구매할 수 없습니다.나중에다시 시도 해주십시오.

6129480992e3bf3eee2b6498 6zrtcxb0l aojbaykonkyks ytivmmkytagofibbph6zuprqv 4p1h8bjunif2yqzsush8mv26sehrxknqi ajrtygdos2nrly shjoisglkplfpgmxsnc hfvmsodaxqcii5sjz3ds0 5

SKError.Code.clientInvalid,code 1

의미.사용자가구매할 수 없습니다.예를들어,자녀가기기의 자녀 보호 기능이 켜져 있을 때 무언가를구매하려고 합니다.

해결방법.개발자측의 조치가 필요하지 않습니다.

표시할메시지.구매를완료할 수 없습니다.계정이나기기를 변경하세요.

SKError.Code.paymentCancelled,code 2

의미.사용자가결제 화면으로 이동했지만,구매하려는마음이 바뀌어서 “취소”를클릭했습니다.

해결방법.기술적인측면에서 오류가 발생하지 않았으며,이경우 아무 것도 수행할 필요가 없습니다.마케팅관점에서는 이러한 사용자에게 할인 제공 등을 통해구매를 유도할 수 있습니다.

표시할메시지.여기에는두 가지 옵션이 있습니다.가장쉬운 것은 아무것도 보여주지 않는 것입니다.그러나다음과 같은 메시지로 사용자를 다시 확보할 수도있습니다.”구매를취소하셨습니다.할인된가격으로 구독해 보시겠습니까?”

SKError.Code.paymentInvalid,code 3

의미.어떤이유로인가 결제에 실패했습니다.카드가만료되었거나,이구매를 위한 잔액이 충분하지 않습니다.

해결방법.개발자측의 조치가 필요하지 않습니다.

표시할메시지.구매가거부되었습니다.결제세부 정보를 확인하고 계좌에 충분한 잔액이 있는지확인하십시오.

SKError.Code.paymentNotAllowed,code 4

의미.아마도이 카드에는 몇 가지 구매 제한이 있습니다.한도가설정되었거나 온라인 쇼핑 기능을 사용할 수 없습니다.

해결방법.개발자측의 조치가 필요하지 않습니다.

표시할메시지.선택한결제 수단으로는 구매할 수 없습니다.결제수단이 온라인 구매를 허용하는지 확인하십시오.

SKError.Code.storeProductNotAvailable,code 5

의미.사용자가이 스토어가 사용되는 지역에서 이용할 수 없는 제품을구매하려고 합니다.

해결방법.개발자는사용자의 스토어 및 지역에서 제품을 이용할 수 있는지확인해야 합니다.이를위해 SKStorefront를사용할 수 있습니다.

표시할메시지.이제품은 귀하의 지역에서 이용할 수 없습니다.스토어를변경하고 다시 시도하십시오.

Subscribe to Adapty newsletter

Get fresh paywall ideas, subscription insights, and mobile app news every month!

SKError.Code.cloudServicePermissionDenied,code 6

의미.사용자가자신의 클라우드 서비스 정보에 대한 접근 권한을부여하지 않았습니다.

해결방법.개발자측의 조치가 필요하지 않습니다.

표시할메시지.솔직히말하자면,이런오류를 본 적이 없습니다.사실,당신은구매가 거부되었다고 작성할 수 있습니다.

SKError.Code.cloudServiceNetworkConnectionFailed,code 7

의미.구매시, 기기가인터넷에 연결되어 있지 않았습니다.

해결방법.개발자측의 조치가 필요하지 않습니다.

표시할메시지.기기가인터넷에 연결되어 있지 않아 구매를 완료할 수 없습니다.인터넷연결이 안정적일 때 다시 시도해 주세요.

SKError.Code.cloudServiceRevoked,code 8

의미.이기기는 StoreKit결제서비스에 접근할 수 없습니다.대개이 오류는 샌드박스 (Sandbox)에서발생합니다.

해결방법.새샌드박스 사용자를 만들거나 작업을 반복해 보십시오.

표시할메시지.죄송합니다.오류가발생했습니다.

SKError.Code.privacyAcknowledgementRequired,code 9

의미.사용자가AppStore이용약관에동의하지 않았습니다.문서에나와있듯,”사용자는AppleMusic에대한 Apple의개인 정보 보호 정책에 아직 동의하지 않았습니다”.하지만여기에서 AppleMusic을언급할 이유가 없기 때문에 잘못된 것 같습니다.

해결방법.개발자측의 조치가 필요하지 않습니다.

표시할메시지.AppStore 이용약관에동의하지 않으셔서 구매를 완료할 수 없습니다.설정에서동의를 확인하신 후 구매로 돌아가주세요.

SKError.Code.unauthorizedRequestData,code 10

의미.앱(app) ID가StoreKit사용에필요한 권한을 갖고 있지 않습니다.

해결방법.앱에대한 인앱 구매 설정 과정을 완료해야 합니다.

표시할메시지.오류가발생했습니다.나중에다시 시도 해주십시오.

SKError.Code.invalidOfferIdentifier,code 11

의미.사용자가잘못된 프로모션 할인이 포함된 제품을 구매하려고합니다.

해결방법.개발자측의 조치가 필요하지 않습니다.

표시할메시지.프로모션할인이 유효하지 않거나 만료되었습니다.

SKError.Code.invalidSignature,code 12

의미.StoreKit 요청에대한 프로모션 할인 서명이 잘못 생성되었습니다.

해결방법.서명이어떻게 생성되는지 확인하고 오류를 수정하십시오.Adapty를사용하는 경우,구독키를 다운로드합니다.

표시할메시지.죄송합니다.프로모션코드를 적용하는 중에 오류가 발생했습니다.나중에다시 시도 해주십시오.

SKError.Code.missingOfferParams,code 13

의미.프로모션할인의 매개변수가 잘못 구성되었습니다.

해결방법.프로모션코드의 매개변수를 확인하고 수정하십시오.

표시할메시지.죄송합니다.프로모션할인 (promooffer)을적용하는 중에 오류가 발생했습니다.나중에다시 시도 해주십시오.

SKError.Code.invalidOfferPrice,code 14

의미.사용자가잘못된 가격으로 제품을 구매하려고 합니다.아마AppStore에표시된 가격이 더 이상 유효하지 않을 것입니다.

해결방법.AppStore에서이 판매에 대한 업데이트된 가격을 설정하십시오.

표시할메시지.죄송합니다.구매를완료할 수 없습니다.나중에다시 시도 해주십시오.

결론

오류를올바로 처리하면 사용자 경험을 개선할 수 있고,어떤이유로인가 구독 비용을 즉시 지불할 수 없는 사용자중 적어도 일부를 다시 확보할 수 있습니다.다음은iOS 앱에서구매를 구현할 때 가장 흔한 실수입니다.

  • SKError.Code.unknown, 알 수 없는 오류;
  • SKError.Code.paymentCancelled, 사용자가 구매를 취소한 경우;
  • SKError.Code.paymentInvalid, 결제가 처리되지 않는 경우.

사실오류 처리 및 구매 구현은 번거로운 과정입니다.그래서iOS용AdaptySDK를사용해 보시도록 권합니다.인앱구매를 더 쉽게 구현하고 구독 분석,코호트분석 (cohortanalysis), 페이월에대한 a/b테스트(paywalla/b test) 및서버 측 영수증 확인과 같은 다른 이점을 제공합니다.