2017-12-19 13 views
0

Apple에서 iOS 앱을 제출하려고합니다. 하지만 그들은 IPv6 문제로 인해 내 앱을 거부했습니다. IPv6 네트워크에서 서버에 연결하려고 시도했지만 성공하지 못했습니다.
우리는 서버 측을 변경했습니다. 이제 우리 서버는 IPv6을 사용할 준비가되었습니다 (ipv6test.com에서 테스트했는데 모든 것이 좋았습니다).
내 앱에서 URLSession.shared.dataTask을 사용하여 요청을 만듭니다. 그들은 우리의 서버에 연결할 수없는 이유
신속한 IPv6 지원

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 {...} 

내가 이해가 안 : 그리고 애플은 코드의 같은 라인에 문제가있어. 우리 네트워크 (IPv4)에서 모든 것이 좋습니다.
그리고 이상한 일 : 나는 어제 10시 5 분에이 앱을 보냈다. 10시 30 분에 Apple 네트워크에서 한 건의 요청을 보았으며 성공했습니다 (200 상태). 그들은이 앱에서 심지어 승인 할 수 없다고 썼기 때문에 매우 이상하게 보입니다.
제발, 누군가이 상황을 도울 수 있습니까? 나는 이해할 수 없다. 문제는 어디에 있으며, 나는 무엇을해야만 하는가?

+0

SIM 카드가있는 물리적 장치가 있습니까? –

+0

불행히도, 아니오. SIM이없는 물리적 장치가 있습니다. 그리고 에뮬레이터에서 내 애플 리케이션을 테스트했습니다. 하지만 제출하기 전에 SIM 카드가있는 실제 기기 2 대에 앱을 설치했는데 모든 것이 정상적으로 작동했습니다. – user3533397

+0

문제는 IPv6와 관련이 없으며 Apple이 (일부 이유로) 앱에서 권한을 부여하지 못했을 가능성이 있습니다. 문제가 코드의이 특정 부분과 관련이 있다고 생각하는 이유는 무엇입니까? –

답변

0

Mac을 사용하여 DNS64/NAT64 네트워크를 설정하여 이와 같은 문제를 테스트해야합니다. link

가능성은 QA가 수행하는 바입니다.

+0

어디에서 문제가 있는지 파악하지 못합니다. 네트워크에 타사 라이브러리를 사용하지 않았으며 URLSession 만 사용했습니다. 우리 서버는 IPv6 네트워크에서 요청을 처리 할 준비가되었습니다. 문제가 어디에 있습니까? – user3533397

+0

문제가 어디 있는지 전혀 알 수 없지만 문제를 직접 해결할 수있는 첫 번째 단계는 Apple 권장 사항에 따라 Mac을 설정하는 것입니다. 문제를 재현 할 수는 없지만, 적어도 애플에게 당신이 시도한 것을 말할 수 있고, 다른 시도를 해달라고 부탁 할 수있다. IP 주소 리터럴이 아닌 적절한 URL을 사용하고 있다고 가정합니까? – Columbo

+0

예, 내 앱에서 문자열 URL (예 :'https : // myaddress.com')을 사용하고 있습니다. 내 클래스 중 하나에 정적 상수가 있습니다. 다음과 같이 보입니다 :'static let serverUrl = "https://myaddress.com";'. 그리고 다른 클래스에서는'/ login'과 같은 부분을 연결합니다. – user3533397