Pracuję nad dodaniem zakupów w aplikacji do mojej aplikacji.
Jestem w stanie otrzymać productsRequest:didReceiveResponse
metodę i otrzymać szereg produktów.
Mój problem pojawia się, gdy dodam SKPayment do SKPaymentQueue . Po dodaniu produktu do kolejki w paymentQueue:updatedTransactions
metodzie transakcje mają zawsze stan SKPaymentTransactionStateFailed .
I NSLoguj „transaction.error” i oto co zwraca: Error Domain = SKErrorDomain Code = 0 UserInfo = 0x165000 „Cannot connect to iTunes Store”
Wylogowałem się ze Sklepu w aplikacji Ustawienia, ale po próbie zakupu produktu w mojej aplikacji nigdy nie prosi mnie o zalogowanie się na moje konto testowe. Po prostu zawodzi z powyższym błędem.
iphone
objective-c
in-app-purchase
storekit
lucasharding
źródło
źródło
Odpowiedzi:
Zakładam, że wykonałeś standardowe kontrole poprawności: podwójne sprawdzenie kodu, potwierdzenie identyfikatorów produktów, porównanie kodu z Przewodnikiem programowania zakupów w aplikacji itp.
Może to być śmieszne, ale - jeśli masz pewność, że kod jest poprawny - wykonaj twardy reset (pełne wyczyszczenie) iPoda (Ustawienia => Ogólne => Resetuj => Usuń całą zawartość i ustawienia). Zastanawiałem się nad tym dokładnym problemem godzinami - okazało się, że mój kod jest poprawny i rozwiązaniem był twardy reset.
źródło
I był już
SKPaymentTransactionStateFailed
kod błędu 0 „ nie można połączyć się z iTunes Store ” i dzięki thomax dla tej odpowiedzi mój problem został rozwiązany. Okazuje się, że MUSISZ wprowadzić numer kompilacji w obszarze Cele-> Podsumowanie .Ostatnie 24 godziny spędziłem na resetowaniu telefonu, podłączaniu iTunes i robieniu prawie wszystkiego, o czym mogłem pomyśleć, zanim natknąłem się na to rozwiązanie.
źródło
Otrzymałem ten sam błąd, ale zostałem poproszony o podanie konta użytkownika testowego. A także wyskakujące okienko z napisem „Wystąpił nieznany błąd”. Okazuje się, że kiedy utworzyłem testowe konto użytkownika i wylogowałem się z ustawień -> sklep, zdecydowałem się zalogować na moje testowe konto użytkownika, które poprosiło mnie o kilka informacji, w tym rozliczenia, które zepsuły moje testowe konto użytkownika . Kiedy utworzyłem nowe konto użytkownika testowego i logowałem się tylko wtedy, gdy pojawi się monit podczas testowania zakupu w aplikacji, wszystko działało sprawnie.
źródło
Ten błąd (tj. „Błąd! Nie można połączyć się z iTunes Store”) może wystąpić, jeśli dokonujesz zakupu w trybie piaskownicy w aplikacji, ale jesteś zalogowany przy użyciu zwykłego konta Apple.
Uważam, że pomaga uniknąć nieporozumień, jeśli wyloguję się z konta Apple przed dokonaniem jakichkolwiek zakupów w aplikacji. Następnie w oknie dialogowym „Zaloguj się” wybierz opcję „Użyj istniejącego Apple ID” i wprowadź dane użytkownika testowego.
Pamiętaj tylko, że zostanie to ustawione w Ustawieniach, więc będziesz musiał się wylogować po zakończeniu zakupów w aplikacji.
Ponadto użycie innego Apple ID powoduje zresetowanie różnych ustawień związanych z iTunes, takich jak iTunes Match.
źródło
Możesz sprawdzić, czy ten link działa lub czy upłynął limit czasu:
https://sandbox.itunes.apple.com/verifyReceipt
Alternatywnie, nienaukowym, ale dość niezawodnym sposobem sprawdzenia, czy piaskownica działa, jest zapytanie pod adresem:
https://devforums.apple.com/community/ios/connected/purchase
Jeśli piaskownica nie działa, prawdopodobnie ludzie będą już o tym rozmawiać, tak jak teraz (18 stycznia 2012, 18:40 czasu UTC).
źródło
Miałem również do czynienia z tym samym błędem. Doszedłem do wniosku, że błąd pojawia się dopiero na Symulatorze, kiedy przełączyłem się na debugowanie urządzenia, błąd się nie pojawił.
źródło
Po prostu wyloguj się z konta AppStore w ustawieniach ...
Rozwiązałem problem, ponieważ moje urządzenie było zalogowane przy użyciu mojego zwykłego identyfikatora Apple ID i ponieważ zakupy w piaskownicy są zawsze dokonywane przy użyciu identyfikatora użytkownika testowego, urządzenie próbowało wysłać mój zwykły identyfikator Apple Store do „testowego” sklepu App Store. na temat błędu „Nie można połączyć się z iTunes Store”.
To najczęstsza przyczyna, jaką widziałem na swoim urządzeniu.
źródło
Trafiłem z tym samym problemem, zresetowałem urządzenie, zweryfikowałem identyfikatory, ponownie zainstalowałem aplikację. Pomyślałem również, że problem polega na tym, że zmieniłem odniesienie i opis produktów. W rzeczywistości wydaje mi się, że dzieje się tak, ponieważ mój użytkownik testowy został zablokowany jako wiele osób korzystających z tego samego konta, i istnieje możliwość, że weryfikacja hasła nie powiodła się wiele razy. Dlatego ponownie utworzyłem innego użytkownika testowego i zakupy w aplikacji wróciły do pracy. Mam nadzieję że to pomoże. Byłem całkowicie zaskoczony tym błędem.
źródło
Upewnij się, że Twoje BundleIDs są zgodne. To był mój problem.
źródło
Nawet pełne przywrócenie nie rozwiązało tego problemu.
Po wywołaniu
addPayment
automatycznego odnawiania identyfikatora produktu minęło około jednej sekundy, zanim otrzymałem błąd „SKErrorDomain Code = 0” z StoreKit. W żadnym momencie nie zostałem o to poproszony (jak sugeruje dokumentacja Apple'a) ) o nazwę użytkownika i hasło do iTunes Store; transakcja po prostu się nie powiodła.Aby rozwiązać ten problem, musiałem dodać fałszywy produkt „zużywalny” do iTunes Connect i zadzwonić
addPayment
używając fałszywego identyfikatora produktu. Spowodowało to wyświetlenie okna dialogowego iTunes Store. Następnie zalogowałem się na konto testowe, które utworzyłem w iTunes Connect. Udało się: moja aplikacja została powiadomiona, że materiał eksploatacyjny został zakupiony.Po wykonaniu tej czynności mogłem zadzwonić
addPayment
z moim automatycznie odnawiającym się identyfikatorem produktu i normalnie kupić subskrypcję.źródło
upewnij się, że testujesz z kontami użytkowników piaskownicy utworzonymi w itunesconnect, a nie z rzeczywistym identyfikatorem Apple dla konta osobistego podczas testowania tych rzeczy.
źródło
Pomyślałem, że warto wspomnieć, że rozwiązanie DonnaLea polegające na logowaniu się tylko po wyświetleniu monitu o płatność działało również w przypadku tego samego problemu z wtyczką StoreKit Unity i Prime31. Próba zalogowania się za pomocą tego samego menu ustawień, którego używasz do wylogowania, spowoduje wyświetlenie monitu o podanie wszelkich informacji dotyczących fakturowania \ adresu, co wydaje się trwale „uszkodzić” to konto testowe.
źródło
Znalazłem się w takiej sytuacji, kiedy pracowałem nad dodawaniem zakupów w aplikacji i nie zrobiłem tego dokładnie za pierwszym razem. W moim przypadku wystąpił błąd w PHP po stronie serwera, w wyniku czego wydaje mi się, że nie udało mi się dotrzeć do „finishTransaction:”. Nawet po naprawieniu problemów (umieściłem program na osobnym urządzeniu i pomyślnie kupiłem), ciągle otrzymywałem komunikat „Już to kupiłeś, kliknij, aby pobrać”, a następnie „Nie można połączyć się z iTunes Store”.
W końcu udało mi się przestać to robić, uruchamiając grę ze Springboard (nie XCode). Natychmiast pomyślnie przetworzył transakcję i przestał zachęcać mnie do ponownego pobrania.
źródło
Jest to podobne do zaakceptowanej odpowiedzi powyżej. Pojawił się błąd „nie można połączyć się ze sklepem iTunes Store” podczas próby zalogowania się do mojego konta iTunes na telefonie po zalogowaniu się przy użyciu konta IAP Sandbox.
Aby rozwiązać problem, mogłem po prostu zresetować wszystkie ustawienia zamiast wymazać całą zawartość i ustawienia (Ustawienia => Ogólne => Resetuj => Resetuj wszystkie ustawienia). Zdecydowanie lepsze niż utrata i ponowne instalowanie wszystkiego na swoim urządzeniu.
źródło
Miałem ten sam problem, przede wszystkim nie utworzyłem konta testowego, więc utworzyłem go, uzyskując pomoc z tego linku https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/ SettingUpUserAccounts.html # // apple_ref / doc / uid / TP40011225-CH25-SW10
Następnie musisz wylogować się z bieżącego konta na swoim urządzeniu. i kup kupno zapyta o konto użytkownika, a następnie wejdzie na konto testowe.
źródło
Miałem ten sam problem. Wcześniej utworzyłem testowe konto użytkownika i wylogowałem się ze sklepu itunes, spodziewając się, że po dokonaniu zakupu w aplikacji zostanie wyświetlony monit o zalogowanie się na moje testowe konto użytkownika. zamiast tego otrzymałem komunikat nie można połączyć się z iTunes Store. kiedy zalogowałem się za pomocą mojej prawdziwej nazwy użytkownika / hasła iTunes i wypróbowałem moją aplikację testową, działało idealnie. Następnie ponownie wylogowałem się ze sklepu itunes i moja aplikacja działała świetnie, monitując mnie o podanie mojego identyfikatora / pw
źródło
Miałem ten sam błąd, ale problem nie był dokładnie taki sam. Może przydatne dla kogoś:
W strukturze mojej aplikacji wstawiłem zewnętrzny plik. Powodem, dla którego to zrobiłem, jest to, że podczas produkcji wstawiam ten plik z serwera, ale w trakcie opracowywania pomyślałem, że szybsze będzie użycie aplikacji o nazwie iExplorer do wklejenia tego pliku. Zrobiłem to już w przeszłości i nie miałem tego problemu. Ale w ciągu ostatnich kilku dni, jeśli wkleię ten plik bezpośrednio za pomocą iExplorer, moja aplikacja zwróci błąd: „Nie można połączyć się z iTunes Store”. (w języku hiszpańskim: „No puede conectarse a iTunes Store”).
Myślę, że to dlatego, że tym razem wstawiłem plik do folderu .app. To sprawia, że myślę, że jeśli zmodyfikujesz folder .app w jakikolwiek sposób, podpis Codesignature zepsuje się, a łącze do iTunes Store przestanie działać bezpośrednio.
źródło
U mnie problem został rozwiązany poprzez przesłanie pliku binarnego. Ponieważ tej odpowiedzi nie podano na tej stronie, która wydaje się być jednym z największych hitów w Google, pomyślałem, że ją dodam.
źródło
Pomyślałem, że powinienem podzielić się moim niedawnym doświadczeniem z tym samym problemem:
Kilka dni temu doświadczyłem tego samego problemu, w którym przestał on działać z dnia na dzień. Po uwierzytelnieniu przez moich użytkowników testowych pojawił się następujący błąd:
Error Domain=SKErrorDomain Code=0 UserInfo=0x165000 "Cannot connect to iTunes Store"
Nie wprowadziłem żadnych zmian w kodzie i nie mogliśmy wymyślić żadnych innych zmian na naszym koncie iTunes lub produktach IAP, które mogłyby spowodować problemy. Jedyną rzeczą, która mogła być powiązana, było dodanie większej liczby użytkowników testowych iTunes (chociaż wcześniej dodałem ~ 15 kont bez problemów). Przetestowałem to na różnych urządzeniach i symulatorze.
Przeszedłem przez wszystkie dostępne listy kontrolne i wszystkie możliwe rozwiązania (również wspomniane powyżej) bez żadnego sukcesu. W końcu pomyślałem, że mogę odpocząć od tego przez cały weekend, skoro rysowałem puste miejsca. I co dziwne (i po raz pierwszy w historii), nic nie działało ! Nie zmieniłem żadnego kodu ani nic nie zmieniło się na naszym koncie iTunes ani w aplikacji.
Jedyne powody, jakie przychodzą mi do głowy, to:
źródło
Sprawdź, czy jesteś zalogowany na swoje osobiste konto itunes w sklepie z aplikacjami. Jeśli jesteś, otrzymasz tę wiadomość. Nawet jeśli jesteś zalogowany na swoje konto piaskownicy w aplikacji. Aby rozwiązać ten problem, wyloguj się z konta osobistego w sklepie z aplikacjami, a następnie spróbuj kupić element w aplikacji, a następnie użyj konta piaskownicy. To rozwiązało mój problem.
źródło
Cóż, jak zwykle "wypróbowałem wszystkie dostępne rozwiązania i to nie pomogło" :) Oto mój wkład w tę nieograniczoną kolekcję potykających się kamieni:
Jeśli aplikacja nie jest obecnie w sprzedaży (z jakiegokolwiek powodu), ten błąd występuje.
źródło
Wystąpił ten sam błąd, gdy
SKProductsRequest
wywołałemstart
metodę w moim testowym środowisku env, uruchomiła się- (void)request:(SKRequest *)request didFailWithError:(NSError *)error
Kiedy zadzwoniłem do mojego środowiska produkcyjnego, jest poprawne i uruchomione
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
Zamknij
charles
lub jak najszybciej oprogramowanie proxy HTTP! Zamknijcharles
lub jak najszybciej oprogramowanie proxy HTTP! Zamknijcharles
lub jak najszybciej oprogramowanie proxy http!Wiesz to ~
źródło
Miałem ten sam problem, ale rozwiązałem go w następującym trybie:
- korzystałem z emulatora iPhone'a 5S z iOS 8.4 (to jest najważniejsze. Połączenie Apple Store nie działa na emulatorze iOS 11)
- na emulatorze włączyłem następujące ustawienie: Ustawienia / Deweloper / Zezwalaj na usługi HTTP (to jest dla połączenia internetowego)
- tymczasowo wyłączyłem Avast Antivirus Web Shield (dotyczy to również połączenia internetowego)
źródło
In-App Purchase FAQ zawiera następujące informacje:
W moim przypadku błąd wystąpił, ponieważ korzystałem z symulatora.
Nawet w Przewodniku programowania zakupów w aplikacji mówi się, że korzystanie z deweloperskiego urządzenia iOS ma sugerowany etap testowania .
źródło
Zgodnie z dokumentacją Apple:
Nie można połączyć się z iTunes Store Problem „Nie można połączyć się z iTunes Store” może wynikać z jednej lub kilku z następujących przyczyn:
https://developer.apple.com/library/content/technotes/tn2413/_index.html
źródło
Próbowałem wszystkiego, co mogłem, aby poradzić sobie z tym problemem.
Prawdziwe urządzenie, a nie symulator.
Nowe zarejestrowane konto testowe Sandbox (nie wypełniaj dodatkowych informacji, aby było to formalne konto Apple ID)
Wyloguj się ze wszystkich powiązanych kont. (ICould, App Store, być może z konta testowego innej aplikacji)
Wypełnij wszystkie podatki i umowy w witrynie itunesconnect
Nawet przywróć ustawienia fabryczne LOL ...
zawsze zwraca kod SKErrorDomain = 0
"Nie można połączyć ze sklepem itunes"
...
Rozwiązanie mojej sprawy w końcu przyszło do mnie po 3 dniach walki:
I w końcu znajduję klucz. Spróbuj z innym urządzeniem, aby przetestować iAP, jeśli iOS twojego urządzenia to iOS13.4.x!!! A ja uaktualniam wersję systemu operacyjnego tego „zepsutego” urządzenia do iOS14.0.1, iAP działa jak urok.
źródło