Piszę kod związany z StoreKit i otrzymuję dość kłopotliwe kody błędów, gdy próbuję dodać zakup do kolejki.
Jak dotąd napotkałem kody błędów -1003 i -1004 i nie mogę znaleźć nic o tych kodach w Internecie.
Uruchomienie żądania produktu zwraca prawidłowe numery produktów, więc nie wiem, dlaczego wywołania do strony [[SKPaymentQueue defaultQueue] addPayment:aPayment];
miałyby zakończyć się niepowodzeniem w przypadku tego nieudokumentowanego problemu.
Ten sam kod działa również bez błędów na jednym urządzeniu, ale nie na innym.
Pytania, które mam, na razie pozostają bez odpowiedzi:
Co oznaczają te kody? Jak mogę złagodzić ten problem? Dlaczego mają miejsce w przypadku prób zakupu, a nie próśb o produkty?
Rozwiązywanie problemów, które zrobiłem, obejmuje regenerację certyfikatu podpisywania i profilu aprowizacji, zmianę sieci Wi-Fi, czyszczenie i budowanie oraz ponowną instalację całego powiązanego oprogramowania i składników, a żadna z tych rzeczy, pojedynczo lub razem, nie pomogła w rozwiązaniu problemu.
EDYTOWAĆ:
Znalazłem dyskusję na ten temat na forach programistów Apple, ale nikt z Apple nie odpowiedział: https://devforums.apple.com/thread/107121?tstart=75 (do wyświetlenia wymagane jest konto programisty iOS)
EDYTOWAĆ:
Zostałem dzisiaj trafiony kodem błędu -1001, aby dodać do tej listy niewytłumaczalne i sporadyczne problemy. Wciąż nie mogę znaleźć żadnej odpowiedzialności ze strony Apple.
EDYTOWAĆ:
Podejrzewam, że te kody błędów są generowane losowo i tak naprawdę tylko wskazują, że piaskownica nie działa. Czy ktoś jeszcze ma ten problem?
źródło
NSURLErrorUnknown
. Tak. Jakieś wskazówki?Mam podobne problemy, w moim przypadku wydają się być związane z łącznością sieciową:
Rzeczy do sprawdzenia:
Przepraszamy, brak pomysłów, jak to naprawić. Po prostu debuguję to, próbując dowiedzieć się, w czym jest problem (-1021, -1001, -1009)
Aktualizacja: wyszukiwarka Google była bardzo miła, aby znaleźć to:
źródło
zobacz NSURLError.h Define
źródło
W moim projekcie używam następującej metody
Następnie po prostu sprawdzam kod błędu i pokazuję alert, jeśli jest na liście
Ale jak widać, wykomentowałem kody, które moim zdaniem nie pasują do mojej definicji BRAKU INTERNETU. Np. Kod -1012 (Niepowodzenie uwierzytelnienia). Listę możesz dowolnie edytować.
W moim projekcie używam go przy wpisywaniu nazwy użytkownika / hasła od użytkownika. Moim zdaniem (fizyczne) błędy połączenia sieciowego mogą być jedynym powodem wyświetlania widoku alertów w aplikacji sieciowej. W każdym innym przypadku (np. Niepoprawna para nazwa użytkownika / hasło) wolę wykonać niestandardową, przyjazną dla użytkownika animację LUB po prostu powtórzyć nieudaną próbę ponownie bez żadnej uwagi użytkownika. Zwłaszcza jeśli użytkownik nie zainicjował jawnie połączenia sieciowego.
Pozdrawiam martinezdelariva za link do dokumentacji.
źródło
Znalazłem nowy kod błędu, który nie jest udokumentowany powyżej: CFNetworkErrorCode -1022
źródło
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
Znalazłem tę stronę w dokumentacji, która zawiera wyliczenie celu-c dla wszystkich kodów błędów w domenie NSURLErrorDomain.
https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/index.html#//apple_ref/doc/constant_group/URL_Loading_System_Error_Codes
źródło