Estou escrevendo um código relacionado ao StoreKit e recebo alguns códigos de erro bastante preocupantes quando tento adicionar uma compra à fila.
Até agora, encontrei os códigos de erro -1003 e -1004 e não consigo encontrar nada sobre esses códigos na Internet.
Executar uma solicitação de produto retorna números de produto válidos, então não sei por que as chamadas para [[SKPaymentQueue defaultQueue] addPayment:aPayment];
falhariam com este problema não documentado.
O mesmo código também funciona sem erros em um dispositivo, mas não em outro.
As perguntas que tenho estão, ainda, sem resposta:
O que esses códigos significam? Como posso atenuar esse problema? Por que eles estão acontecendo para tentativas de compra e não para solicitações de produtos?
A solução de problemas que fiz inclui a regeneração de um certificado de assinatura e perfil de provisionamento, alteração de redes WiFi, limpeza, criação e reinstalação de todos os softwares e componentes relacionados, e nenhuma dessas coisas individualmente ou em conjunto ajudaram a resolver o problema.
EDITAR:
Encontrei uma discussão sobre isso nos fóruns de desenvolvimento da Apple, mas ninguém da Apple respondeu: https://devforums.apple.com/thread/107121?tstart=75 (conta de desenvolvedor iOS necessária para visualizar)
EDITAR:
Fui atingido com o código de erro -1001 hoje, para adicionar a esta lista de problemas inexplicáveis e intermitentes. Ainda não há responsabilidade da Apple, pelo que posso descobrir.
EDITAR:
Suspeito que esses códigos de erro sejam gerados aleatoriamente e realmente apenas indicam que o Sandbox está inativo. Alguém mais experimentou este problema?
fonte
NSURLErrorUnknown
sim. Alguma pista?Tenho problemas semelhantes, no meu caso parecem estar relacionados à conectividade de rede:
Coisas a verificar:
Desculpe, não tenho ideias de como consertar. Apenas depurando isso, tentando descobrir qual é o problema (-1021, -1001, -1009)
Atualização: a pesquisa do Google foi muito gentil em encontrar isto:
fonte
veja NSURLError.h Define
fonte
Eu uso o seguinte método no meu projeto
Então, eu apenas verifico o código de erro e mostro um alerta se estiver na lista
Mas como você pode ver, comentei códigos que acho que não se encaixam na minha definição de NENHUMA INTERNET. Por exemplo, o código -1012 (Falha na autenticação.) Você pode editar a lista como desejar.
No meu projeto, eu uso a entrada de nome de usuário / senha do usuário. E, na minha opinião, erros de conexão de rede (física) podem ser o único motivo para mostrar a exibição de alerta em seu aplicativo baseado em rede. Em qualquer outro caso (por exemplo, par nome de usuário / senha incorreto) eu prefiro fazer alguma animação personalizada amigável, OU apenas repetir a tentativa falhada novamente sem qualquer atenção do usuário. Especialmente se o usuário não iniciou explicitamente uma chamada de rede.
Atenciosamente à martinezdelariva por um link para a documentação.
fonte
Encontrei um novo código de erro que não está documentado acima: CFNetworkErrorCode -1022
fonte
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
Encontrei esta página na documentação que tem um enum objetivo-c para todos os códigos de erro em NSURLErrorDomain.
https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Misc Miscellaneous/Foundation_Constants/index.html#//apple_ref/doc/constant_group/URL_Loading_System_Error_Codes
fonte