2017-12-19 9 views
0

Ich versuche, meine iOS-App in Apple einzureichen. Aber sie haben meine App wegen Problemen mit IPv6 abgelehnt: Sie haben versucht, eine Verbindung zu unserem Server über das IPv6-Netzwerk herzustellen, und es war nicht erfolgreich.
Wir haben unsere Serverseite geändert: Jetzt ist unser Server bereit, IPv6 zu verwenden (ich habe es auf ipv6test.com getestet, und alles war gut).
In meiner App verwende ich URLSession.shared.dataTask, um eine Anfrage zu erstellen. Und Apple bekam Problem in solchen Codezeile:
Swift IPv6-Unterstützung

var urlRequest: URLRequest = URLRequest(url: myServerUrl); 
urlRequest.httpMethod = "POST"; 
..... //preparing POST data, setting timeout, etc. 
urlRequest.httpShouldHandleCookies - true; 
let task = URLSession.shared.dataTask(with: urlRequest, completionHandler: {(data: Data?, response: URLResponse?, error: Error?) in 
do { 
    guard let resp = response as? HTTPURLResponse else { throw NetworkError.connectionError;} //here they got a problem 
.... 
} 
catch {...} 

Ich verstehe nicht, warum sie nicht auf unserem Server verbinden. Von unserem Netzwerk (IPv4) ist alles gut.
Und die merkwürdigste Sache: Ich schickte diese App gestern um 10:05 Uhr. Um 10:30 Uhr haben wir eine Anfrage aus dem Netzwerk von Apple gesehen, die erfolgreich war (200 Status). Es sieht sehr seltsam aus, weil sie geschrieben haben, dass sie nicht einmal in dieser App autorisieren können ...
Bitte, kann jemand mit dieser Situation helfen? Ich verstehe nicht, wo ist ein Problem und was soll ich tun.

+0

Haben Sie ein physisches Gerät mit einer SIM-Karte? –

+0

Leider nein. Ich habe ein physikalisches Gerät ohne SIM. Und ich habe meine App im Emulator getestet. Aber vor der Einreichung habe ich meine App in 2 realen Geräten mit SIM-Karten installiert, und alles hat gut funktioniert. – user3533397

+0

Wahrscheinlichkeiten sind, dass das Problem nicht mit IPv6 zusammenhängt und Apple (aus irgendeinem Grund) einfach nicht in Ihrer App autorisieren konnte. Warum denken Sie, dass das Problem mit diesem speziellen Teil in Ihrem Code zusammenhängt? –

Antwort

0

Sie sollten solche Probleme testen, indem Sie ein DNS64/NAT64-Netzwerk mit einem Mac einrichten. link

Chancen sind das, was ihre QA tun.

+0

Ich verstehe nicht, wo ein Problem ist: Ich habe keine Bibliotheken von Drittanbietern für die Vernetzung verwendet, und ich habe nur URLSession verwendet, wie sie empfehlen. Unser Server ist bereit, Anfragen von einem IPv6-Netzwerk zu verarbeiten. Wo ist das Problem? – user3533397

+0

Keine Ahnung, wo das Problem liegt, aber der beste erste Schritt ist, das Problem selbst zu reproduzieren, also würde ich vorschlagen, dass Sie den Mac gemäß den Empfehlungen von Apple einrichten. Selbst wenn es Sie nicht erlaubt, das Problem zu repro- duzieren, dann können Sie Apple wenigstens sagen, was Sie probiert haben und sie bitten, es noch einmal zu versuchen. Ich nehme an, dass Sie eine richtige URL und kein IP-Adressliteral verwenden? – Columbo

+0

Ja, in meiner App verwende ich eine String URL (wie 'https: // myaddress.com'). Ich habe statische Konstante in einer meiner Klassen. Es sieht so aus: 'static let serverUrl =" https://meineadresse.com ";'. Und in anderen Klassen teile ich Teile wie '/ login' – user3533397