{"id":137907,"date":"2021-08-30T00:00:00","date_gmt":"2021-08-30T00:00:00","guid":{"rendered":"https:\/\/adapty.io\/pl-ios-in-app-purchases-part-5-list-of-skerror-codes-and-how-to-handle-them\/"},"modified":"2021-08-30T00:00:00","modified_gmt":"2021-08-30T00:00:00","slug":"ios-in-app-purchases-part-5-list-of-skerror-codes-and-how-to-handle-them","status":"publish","type":"post","link":"https:\/\/adapty.io\/pl\/blog\/ios-in-app-purchases-part-5-list-of-skerror-codes-and-how-to-handle-them\/","title":{"rendered":"Zakupy w aplikacji na iOS. Cz\u0119\u015b\u0107 5: lista kod\u00f3w SKError i spos\u00f3b ich obs\u0142ugi"},"content":{"rendered":"\n
W tym po\u015bcie zajm\u0119 si\u0119 SKErrorami (SKErrors): jakie problemy implikuj\u0105 i co z nimi zrobi\u0107. Dla ka\u017cdego b\u0142\u0119du om\u00f3wimy trzy aspekty: dlaczego on wyst\u0119puje, jak sobie z nim poradzi\u0107 i jaki komunikat wy\u015bwietla\u0107 w powiadomieniu o b\u0142\u0119dzie.<\/p>\n\n\n\n\n\n
Co to znaczy.<\/strong> Wyst\u0105pi\u0142 b\u0142\u0105d z nieznanego powodu.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Nie jest potrzebne \u017cadne dzia\u0142anie ze strony deweloper\u00f3w. Ten b\u0142\u0105d pojawia si\u0119 r\u00f3wnie\u017c przy \u017c\u0105daniu podczas pr\u00f3by uzyskania produkt\u00f3w podczas korzystania z symulatora iOS 14 i nowszych. W takim przypadku, aby uzyska\u0107 produkt, u\u017cyj lokalnego testowania StoreKit lub prawdziwego urz\u0105dzenia\/emulatora z wersj\u0105 iOS poni\u017cej iOS 14.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Przepraszamy, zakup jest niedost\u0119pny z nieznanego powodu. Spr\u00f3buj ponownie p\u00f3\u017aniej.<\/p>\n\n\n\n Co to znaczy.<\/strong> U\u017cytkownik nie mo\u017ce dokona\u0107 zakupu. Na przyk\u0142ad dziecko pr\u00f3buje co\u015b kupi\u0107, gdy funkcja kontroli rodzicielskiej na urz\u0105dzeniu jest w\u0142\u0105czona.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Nie jest potrzebne \u017cadne dzia\u0142anie ze strony deweloper\u00f3w.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Zakup nie mo\u017ce zosta\u0107 zrealizowany. Zmie\u0144 swoje konto lub urz\u0105dzenie.<\/p>\n\n\n\n Co to znaczy. <\/strong>U\u017cytkownik wszed\u0142 na ekran p\u0142atno\u015bci, ale zmieni\u0142 zdanie na temat dokonania zakupu i klikn\u0105\u0142 „anuluj”.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Z technicznego punktu widzenia nie wyst\u0105pi\u0142 b\u0142\u0105d i w tym przypadku nic nie trzeba robi\u0107. Z punktu widzenia marketingu mo\u017cesz kontynuowa\u0107 prac\u0119 z takim u\u017cytkownikiem, na przyk\u0142ad zaoferowa\u0107 mu zni\u017ck\u0119.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Masz dwie opcje. Naj\u0142atwiej jest nie pokazywa\u0107 niczego. Mo\u017cesz jednak r\u00f3wnie\u017c spr\u00f3bowa\u0107 odzyska\u0107 u\u017cytkownika za pomoc\u0105 takiego komunikatu: „Anulowano zakup. Czy interesuje Ci\u0119 mo\u017cliwo\u015b\u0107 wypr\u00f3bowania subskrypcji po obni\u017conej cenie?\u201d<\/p>\n\n\n\n Co to znaczy.<\/strong> Z jakiego\u015b powodu p\u0142atno\u015b\u0107 nie powiod\u0142a si\u0119: sko\u0144czy\u0142a si\u0119 wa\u017cno\u015b\u0107 karty, lub nie by\u0142o wystarczaj\u0105cych \u015brodk\u00f3w na ten zakup.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Nie jest potrzebne \u017cadne dzia\u0142anie ze strony deweloper\u00f3w.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Tw\u00f3j zakup zosta\u0142 odrzucony. Sprawd\u017a szczeg\u00f3\u0142y p\u0142atno\u015bci i upewnij si\u0119, \u017ce na twoim koncie jest wystarczaj\u0105ca ilo\u015b\u0107 \u015brodk\u00f3w.<\/p>\n\n\n\n Co to znaczy.<\/strong> Prawdopodobnie ta karta ma pewne ograniczenia zakupu: ustawione s\u0105 limity lub funkcja zakup\u00f3w online jest niedost\u0119pna.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Nie jest potrzebne \u017cadne dzia\u0142anie ze strony deweloper\u00f3w.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Zakup nie jest dost\u0119pny dla wybranej metody p\u0142atno\u015bci. Upewnij si\u0119, \u017ce twoja metoda p\u0142atno\u015bci pozwala na dokonywanie zakup\u00f3w online.<\/p>\n\n\n\n Co to znaczy.<\/strong> U\u017cytkownik pr\u00f3buje kupi\u0107 produkt, kt\u00f3ry nie jest dost\u0119pny dla regionu, w kt\u00f3rym ten sklep jest u\u017cywany.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Deweloper musi sprawdzi\u0107 dost\u0119pno\u015b\u0107 produkt\u00f3w w sklepie i regionie u\u017cytkownika. W tym celu mo\u017cesz u\u017cy\u0107 SKStorefront<\/a>.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Ten produkt nie jest dost\u0119pny w Twoim regionie. Zmie\u0144 sklep i spr\u00f3buj ponownie.<\/p>\n\n\n\n Co to znaczy.<\/strong> U\u017cytkownik nie da\u0142 dost\u0119pu do informacji o swojej us\u0142udze w chmurze (Cloud Service).<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Nie jest potrzebne \u017cadne dzia\u0142anie ze strony deweloper\u00f3w.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107. Szczerze m\u00f3wi\u0105c, <\/strong>nigdy nie spotka\u0142em si\u0119 z takim b\u0142\u0119dem. W\u0142a\u015bciwie mo\u017cesz po prostu napisa\u0107, \u017ce zakup zosta\u0142 odrzucony.<\/p>\n\n\n\n Co to znaczy.<\/strong> Urz\u0105dzenie nie by\u0142o pod\u0142\u0105czone do Internetu podczas dokonywania zakupu.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Nie jest potrzebne \u017cadne dzia\u0142anie ze strony deweloper\u00f3w.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Zakupu nie mo\u017cna zrealizowa\u0107, poniewa\u017c urz\u0105dzenie nie jest po\u0142\u0105czone z Internetem. Spr\u00f3buj ponownie p\u00f3\u017aniej, korzystaj\u0105c ze stabilnego po\u0142\u0105czenia internetowego.<\/p>\n\n\n\n\n\n Co to znaczy. <\/strong>To urz\u0105dzenie nie ma dost\u0119pu do us\u0142ugi p\u0142atno\u015bci StoreKit. Cz\u0119sto ten b\u0142\u0105d wyst\u0119puje w sandboxie.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Utw\u00f3rz nowego u\u017cytkownika sandbox lub po prostu spr\u00f3buj powt\u00f3rzy\u0107 operacj\u0119.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107. <\/strong>Przepraszamy, <\/strong>wyst\u0105pi\u0142 b\u0142\u0105d.<\/p>\n\n\n\n Co to znaczy.<\/strong> U\u017cytkownik nie zaakceptowa\u0142 regulaminu korzystania w AppStore. Jak napisano w dokumentacji, „U\u017cytkownik nie potwierdzi\u0142 jeszcze znajomo\u015bci polityki prywatno\u015bci Apple Music”. Ale wygl\u0105da to na b\u0142\u0105d, poniewa\u017c nie ma powodu, aby wspomina\u0107 tutaj o Apple Music.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Nie jest potrzebne \u017cadne dzia\u0142anie ze strony deweloper\u00f3w.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Zakup nie mo\u017ce zosta\u0107 zrealizowany, poniewa\u017c nie zaakceptowa\u0142e\u015b regulaminu korzystania z AppStore. Potwierd\u017a swoj\u0105 zgod\u0119 w ustawieniach, a nast\u0119pnie wr\u00f3\u0107 do zakupu.<\/p>\n\n\n\n Co to znaczy.<\/strong> Tw\u00f3j identyfikator aplikacji nie zawiera wymaganych uprawnie\u0144 do korzystania ze StoreKit.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Musisz zako\u0144czy\u0107 proces konfiguracji zakup\u00f3w w aplikacji dla swojej aplikacji.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Wyst\u0105pi\u0142 b\u0142\u0105d. Spr\u00f3buj ponownie p\u00f3\u017aniej.<\/p>\n\n\n\n Co to znaczy.<\/strong> U\u017cytkownik pr\u00f3buje kupi\u0107 produkt z nieprawid\u0142ow\u0105 ofert\u0105 promocyjn\u0105.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Nie jest potrzebne \u017cadne dzia\u0142anie ze strony deweloper\u00f3w.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Oferta promocyjna jest niewa\u017cna lub wygas\u0142a.<\/p>\n\n\n\n Co to znaczy.<\/strong> Podpis dla oferty promocyjnej (promotional offer) dla zapytania StoreKit zosta\u0142 wygenerowany nieprawid\u0142owo.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Sprawd\u017a, w jaki spos\u00f3b generowany jest podpis i napraw b\u0142\u0119dy. Je\u015bli u\u017cywasz Adapty, pobierz Klucz Subskrypcji.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Przepraszamy, wyst\u0105pi\u0142 b\u0142\u0105d podczas zastosowania kodu promocyjnego. Spr\u00f3buj ponownie p\u00f3\u017aniej.<\/p>\n\n\n\n Co to znaczy.<\/strong> Parametry oferty promocyjnej s\u0105 utworzone nieprawid\u0142owo.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Sprawd\u017a i popraw parametry swojej oferty promocyjnej.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Przepraszamy, wyst\u0105pi\u0142 b\u0142\u0105d podczas zastosowania kodu promocyjnego. Spr\u00f3buj ponownie p\u00f3\u017aniej.<\/p>\n\n\n\n Co to znaczy.<\/strong> U\u017cytkownik pr\u00f3buje kupi\u0107 produkt z nieprawid\u0142ow\u0105 cen\u0105. Prawdopodobnie cena wy\u015bwietlana w AppStore nie jest ju\u017c aktualna.<\/p>\n\n\n\n Jak to naprawi\u0107.<\/strong> Ustaw aktualn\u0105 cen\u0119 dla tej oferty w AppStore.<\/p>\n\n\n\n Jaki komunikat wy\u015bwietla\u0107.<\/strong> Przepraszamy, zakup nie mo\u017ce zosta\u0107 zako\u0144czony. Spr\u00f3buj ponownie p\u00f3\u017aniej.<\/p>\n\n\n\n Poprawna obs\u0142uga b\u0142\u0119d\u00f3w poprawia wra\u017cenia u\u017cytkownika i mo\u017ce pom\u00f3c w odzyskaniu przynajmniej niekt\u00f3rych u\u017cytkownik\u00f3w, kt\u00f3rzy z jakiego\u015b powodu nie mogli natychmiast zap\u0142aci\u0107 za subskrypcj\u0119. Oto najcz\u0119stsze b\u0142\u0119dy podczas wdra\u017cania zakup\u00f3w w aplikacji na iOS:<\/p>\n\n\n\n<\/figure>\n\n\n\n
SKError.Code.clientInvalid<\/strong><\/a>, code 1<\/strong><\/h2>\n\n\n\n
SKError.Code.paymentCancelled<\/strong><\/a>, code 2<\/strong><\/h2>\n\n\n\n
SKError.Code.paymentInvalid<\/strong><\/a>, code 3<\/strong><\/h2>\n\n\n\n
SKError.Code.paymentNotAllowed<\/strong><\/a>, code 4<\/strong><\/h2>\n\n\n\n
SKError.Code.storeProductNotAvailable<\/strong><\/a>, code 5<\/strong><\/h2>\n\n\n\n
SKError.Code.cloudServicePermissionDenied<\/strong><\/a>, code 6<\/strong><\/h2>\n\n\n\n
SKError.Code.cloudServiceNetworkConnectionFailed<\/strong><\/a>, code 7<\/strong><\/h2>\n\n\n\n
SKError.Code.cloudServiceRevoked<\/strong><\/a>, code 8<\/strong><\/h2>\n\n\n\n
SKError.Code.privacyAcknowledgementRequired<\/strong><\/a>, code 9<\/strong><\/h2>\n\n\n\n
SKError.Code.unauthorizedRequestData<\/strong><\/a>, code 10<\/strong><\/h2>\n\n\n\n
SKError.Code.invalidOfferIdentifier<\/strong><\/a>, code 11<\/strong><\/h2>\n\n\n\n
SKError.Code.invalidSignature<\/strong><\/a>, code 12<\/strong><\/h2>\n\n\n\n
SKError.Code.missingOfferParams<\/strong><\/a>, code 13<\/strong><\/h2>\n\n\n\n
SKError.Code.invalidOfferPrice<\/strong><\/a>, code 14<\/strong><\/h2>\n\n\n\n
Wnioski<\/h2>\n\n\n\n
\n