Rifiuto dell'App Store IPv6


89

Il nostro aggiornamento è stato rifiutato due volte oggi per problemi di connettività di rete ipv6. Il nostro codice di rete non è cambiato tra la versione precedente e questa versione corrente.

L'app effettua solo richieste di rete https ad api.metooapp.io, che è configurato correttamente per ipv6 [ 0 ] e viene eseguito dietro route53 su AWS. Non ci sono indirizzi IP hardcoded nel codice.

Non sono in grado di riprodurre questo problema, anche dopo aver seguito i passaggi per creare una rete ipv6 in [ 1 ], che è il collegamento fornito nell'avviso di rifiuto. Sembra che nemmeno io sia l'unico a riscontrare questo problema [ 2 ].


Stai usando AFNetworking(se sì, quale versione)? Reachability? Biblioteche di terze parti?
Brandon

Alamofire 3.4.0 e Reachability.swift , ma il modo in cui utilizzo Reachability è solo per attività in background opzionali. Il mio problema principale è che non sono in grado di riprodurlo, anche dopo aver seguito le istruzioni di Apple.
Sean Thielen

Aggiungi anche il tuo codice di rete nella domanda
error2007s

@ error2007s Il codice di rete è Alamofire
Sean Thielen

1
hai acquistato l'ultimo dongle IPv6 di Apple?
anders

Risposte:


37

Dopo un po 'di stress, posso confermare che il problema era un problema con il nostro backend non configurato correttamente per IPv6. Apparentemente, AWS non supporta IPv6, né DNS solo IPv6 tramite Route53. Ho finito per spostare tutti i bit del back-end di Internet lontano da AWS per il momento.

Volevo lasciarlo perché penso che probabilmente ci saranno altri che si troveranno con problemi simili quando le persone inizieranno a inviare aggiornamenti oltre la restrizione solo IPv6. Lo strumento migliore che ho trovato per testare la disponibilità di server / dns è stato: http://ready.chair6.net/


2
Potete dirmi se la causa del rifiuto dell'App Store era che i vostri server non supportassero il traffico IPv6? Ora ho 3 rifiuti di fila da Apple ma il mio codice non è cambiato rispetto alle versioni precedenti. Sto usando Xamarin iOS e ho aggiornato anche il loro plug-in di connettività alla versione più recente perché avevano problemi con IPv6. Sto diventando disperato! Non posso replicare l'arresto anomalo sui miei dispositivi iOS qui (anche su una rete NAT64 IPV6 tramite la condivisione Internet del mio Mac).
Jon

questo rifiuto è causato nel tuo server, il tuo server non supporta ipv6. Mangist
Pablo Ruan

Ciao @Sean Thielan, ho testato il nostro server con ready.chair6.net e non riesce per la connettività di rete IPV6, ma l'app funzionava bene con lo stesso server che abbiamo testato creando la rete NAT64 (per rete IPV6) sul nostro Dispositivo iPhone 5S con versione OS 10.0.2, puoi guidarci per quanto segue, dobbiamo inviare nuovamente l'app all'app store o contattare il supporto tecnico Apple. Oppure dobbiamo configurare il nostro Server per supportare la rete IPV6?
Venkatesh

Ciao @Venkatesh, hai trovato una soluzione a questo problema perché sono bloccato con il rifiuto di Apple nello stesso caso?
Mohamed Fadl Allah

ciao Sean. Ho testato le mie API. Non supera questi tre test .. DNS (IPv6 NS) DNS (MX Record) DNS (Glue) .. Il risultato per questi tre è WARN. è quel problema che Apple sta rifiutando la mia app. ?? E 'necessario superare tutti i test del dominio .. su ready.chair6.net ?????
JAck

11

Tieni presente che il supporto di reti solo IPv6 e IPv6 e il link per la revisione delle app possono essere molto utili per determinare qual è il problema con i rifiuti di Apple. In questo caso specifico gli articoli affermano chiaramente che è possibile configurare la rete di test DNS64 / NAT64 ma che "Questa rete di test non è esattamente la stessa della rete utilizzata da App Review", ecco perché tutto può funzionare nell'ambiente di test e avere ancora l'app è stata rifiutata.

Inoltre:

La rete App Review, come le reti distribuite dai provider di servizi, supporta la connettività da IPv6 a IPv6. Pertanto, se il tuo server supporta IPv6, la tua app gli parlerà direttamente, senza passare attraverso il traduttore NAT64. Questa è, in generale, una buona cosa, ma può farti inciampare se il tuo server afferma di supportare IPv6 ma quel supporto IPv6 non funziona. Ad esempio, se: il nome DNS non è corretto il DNS è corretto ma il server non è in ascolto su IPv6 il server è in ascolto su IPv6 ma fallisce quando arriva una richiesta su IPv6

Quindi, se il tuo server di backend ha il supporto per IPv6, la rete di test Apple lo userà, ed è quello che è stato sbagliato in questo caso.

Aggiungo questo come riferimento e punto di partenza per altri utenti che riscontrano lo stesso problema


10

Abbiamo riscontrato lo stesso problema e si è scoperto che mentre avevamo impostato un record AAAA per IPv6, poiché in realtà non avevamo il supporto IPv6 (stiamo anche usando Route53), ha rovinato tutto. La rimozione del record AAAA ha risolto il problema.

Ho archiviato un radar sulla discrepanza tra la documentazione per il test e la configurazione utilizzata da App Review: siamo stati in grado di diagnosticare solo perché il nostro CTO era al WWDC ed è stato in grado di connettersi alla loro rete, il che non è esattamente una situazione possiamo riprodurci regolarmente.


Interessante. Avevo Route53 configurato allo stesso modo, con il record AAAA alias di un ELB. Forse nella prossima versione minore lo riproverò su AWS, ma senza il record AAAA. La sezione dei risultati del tuo radar rispecchia accuratamente le mie esperienze. A un certo punto ho ripristinato le impostazioni di fabbrica di un router, un macbook e un iPhone per assicurarmi completamente che non si trattasse di un problema di cache assurdo. Continuerei a indagare ma sono solo felice che l'aggiornamento sia stato completato e spero di non pensarci più.
Sean Thielen

Hai ricevuto una risposta da Apple al tuo radar?
Kaiserludi

1
@Kaiserludi non ufficialmente, anche se ho visto che nei forum di sviluppo se cerchi alcuni post di Quinn The Eskimo, li sta aggiornando con molte più informazioni per aiutarti a eseguire il debug. Questo sembra particolarmente utile: forums.developer.apple.com/message/147579#147579
DesignatedNerd

Molte grazie. Questo collegamento è davvero molto informativo.
Kaiserludi

6

Ci siamo imbattuti in una situazione simile. La nostra app è stata rifiutata a causa di problemi di connettività nelle reti IPv6. Anche i nostri server utilizzano AWS.

Ho eseguito il test per IPv6 DNS64 / NAT64 senza alcun problema da parte mia e decidiamo di presentare un ricorso a questo rifiuto.

Abbiamo spiegato che il test da parte nostra è stato completato con successo e che stiamo utilizzando l'infrastruttura AWS.

Dopo altri due giorni l'app è stata nuovamente rivista e accettata


5

abbiamo riscontrato lo stesso problema。 La nostra App è stata rifiutata volte per il servizio IPv6. Ma siamo stati testati nella rete ipv6 che si è configurata come documento ufficiale di APPLE: https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIP# uid / TP40010220-CH213-SW1


6
Hai trovato una soluzione a questo? Non riesco a far accettare la recensione della mia app da Apple e sono a corto di idee
Jon

5

La nostra app viene rifiutata la prima volta, configuriamo l'ambiente di test locale in base al documento Apple e scopriamo che la nostra libreria curl è troppo vecchia senza abilitare ipv6 per impostazione predefinita. Quindi creiamo l'ultima libreria curl e funziona. Ma viene rifiutato di nuovo per lo stesso motivo. Controllo molte informazioni, trovo che qualcuno ha avuto la stessa esperienza, mi limito a presentare un reclamo al revisore Apple per dire che la tua app funziona bene nell'ambiente di test e chiedo loro di fornire un ingegnere per aiutare se insiste che ci sia qualche errore. Il team di revisione di Apple ha approvato la nostra app nel fine settimana quando ha visto i nostri reclami.

Come so, ci sono 2 problemi che devi controllare. Codifichi l'indirizzo IP della tua app? Imposta il tuo record AAAA per il dominio del tuo server per mostrare che supporta ipv6, ma il tuo server non ascolta ipv6. Se sì, rimuovi semplicemente quel record AAAA nelle impostazioni del tuo dominio dal sito del tuo provider di dominio.



2

Questa è la seconda volta che riscontro questo problema dopo 6 mesi. In precedenza era nel progetto Objective-C utilizzando AFNetworking e ho usato questa soluzione e ha funzionato in una volta sola. Ora lo stesso è accaduto con Alamofire. Ragazzi questa soluzione ha funzionato per me 2 volte e ho trovato questa domanda in arrivo per prima su Google, quindi sto postando la risposta.

Cerca AF_INET nell'area di lavoro e cambialo in AF_INET6 ovunque ti trovi. Penso che debba essere all'interno della libreria AFNetworking o della libreria Alamofire se lo stai usando. È nella classe NetworkReachabilityManager.

Ho trovato questa risposta dalla fonte sottostante.

https://stackoverflow.com/a/38196337/4030971

EDIT: - 24 giugno -

Questo mi ha aiutato tante volte ma c'è anche una strana soluzione a questo problema. Nel nostro recente progetto abbiamo applicato questa soluzione ma ancora Apple ha rifiutato la domanda. Quindi abbiamo realizzato un video che mostrava che l'app funziona correttamente con la connessione a una rete NAT64 creata su un Mac dall'opzione di condivisione wifi. Abbiamo fatto appello per la revisione con il video e hanno approvato la domanda. Quindi, se hai finito con tutte le tue opzioni, prova anche questa.



1

Ho eseguito il test per IPv6 DNS64/NAT64senza alcun problema come prescritto dalla documentazione Apple

tuttavia, non siamo in grado di riprodurre il problema (arresto anomalo). Abbiamo installato correttamente l'app nei nostri dispositivi senza arresti anomali.

  • Abbiamo realizzato un video di questo processo di test totale (che include la visualizzazione della connettività, il download da testflight, la connessione di rete NAT64, le operazioni dell'app)
  • e appello per il rifiuto con il file video

Infine , l'app store ha APPROVATO la mia app


1
assicurati che la tua app non abbia alcun indirizzo IP
hardcoded

0

Ho riscontrato lo stesso rifiuto dell'app durante l'utilizzo dell'SDK di Facebook. Se stai utilizzando l'SDK di Facebook per il login, è incredibilmente importante disconnettere l'utente al termine di una sessione. Altrimenti dovrai affrontare rifiuti simili in futuro. Ho incluso il codice di seguito per aiutare coloro che potrebbero riscontrare problemi simili.

let loginManager = FBSDKLoginManager()
loginManager.logOut()

0

Ho risolto il problema inviando loro un video, mostrando che la mia app funziona su ipv6.

  1. Configura ipv6 con il tuo macOS
  2. Videocassetta che sei connesso alla rete ipv6 condivisa e dimostra che la tua app funziona in quell'ambiente.

Ho provato il percorso video. Ha mostrato loro che stavo configurando il mio Mac come wifi IPV6, collegando il mio telefono ad esso e eseguendo la mia app senza problemi. Ho appena ricevuto un altro rifiuto da parte loro, dicendo "Grazie per la tua risposta. Durante la nostra revisione, abbiamo riscontrato che la tua app viene ancora avviata su uno schermo bianco, anche durante il test su più dispositivi". Quindi segue i consigli su come eseguire il test con le reti IPV6; questi sono gli stessi passaggi che ho mostrato loro nel mio video. Nel complesso, la risposta sembrava che potesse essere automatizzata. Come trattare con una persona reale del team di revisione Apple?
ChillyPenguin

Forse devprograms@apple.com.
Steve Ham

0

la mia app è stata rifiutata due volte su app store. Danno un errore all'accesso a Twitter su iPhone con sistema operativo 11.4. Il problema principale che abbiamo a causa dell'URL di richiamata di Twitter, che non è impostato sull'account sviluppatore di Twitter. quando imposto l'URL di richiamata sull'account sviluppatore di Twitter. Risolve il mio problema. Quando non impostiamo l'URL di richiamata sull'account sviluppatore di Twitter, tale volta che l'accesso a Twitter ha esito positivo quando il dispositivo ha l'app Twitter. ma in caso di assenza dell'app Twitter sul dispositivo dà l'errore 403 proibito.

Quindi l'impostazione dell'URL di richiamata risolve il mio problema e l'app viene accettata.

Grazie

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.