どこがエラーですか?IPv6 - アップル拒否のアプリiOS
アップルのアプリと送らmessege拒否:
パフォーマンス - iPadと接続のWi-Fi上のiOS 9.3.5を実行している iPhoneに見直したときに2.1
を私たちはあなたのアプリ内の1つまたは複数のバグを発見しましたIPv6ネットワークに接続します。
具体的には、投票が行われ、Supporting IPv6 DNS64/NAT64 Networks
「あなたは、高レベルのネットワークAPIを使用して、クライアント側のアプリケーションを書いている場合などNSURLSessionとCFNetworkはフレームワークを、あなたが接続したときにエラーが表示されますを変更する必要はありません。あなたのアプリがIPv6アドレスで動作するようにする必要はありません。 Apple Developer Forums上
次は言う:
N 3 - 私は私のサーバーを更新する必要がありますか?それはあなたの サーバがどこで動作しているかによって異なります:より広いインターネット上でサーバを稼働させている場合は、 答えはいいえです。 DNS64/NAT64経由でIPv6専用デバイス にアクセスできるようになります。もちろん、 としてIPv6をサポートするようにサーバーを更新する必要がありますが、それは自分の時間にできることです。 iOSアプリにサーバーが組み込まれている場合(たとえば、ユーザーがアプリケーションとの間でファイルを転送できるWeb サーバー)、 はIPv6専用環境で正常に動作することを確認する必要があります。
私のホスティング事業者は言う:私達はあなたのサーバーへのIPv6でのサーバーのために、何の問題も表示されない
がIPv4が(DNAT/SNAT
私のサイトを通じて利用できるようになりますですサーバー): http://badroads.info
私のコードはApp()このコードは別のアプリで承認されました前の週をlication):
func sendToServer(dataFromDictionary: Dictionary<NSString, AnyObject>) {
let url: NSURL = NSURL(string: "http://badroads.info/t-or-c/****.php")!
let request:NSMutableURLRequest = NSMutableURLRequest(URL:url)
let session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
do {
request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(dataFromDictionary, options: [])
} catch let parseError as NSError {
request.HTTPBody = nil
dispatch_async(dispatch_get_main_queue()) {
EZLoadingActivity.hide()
self.alertMessageSuccessError("Error", messageM: "Oops, something went wrong! Try again, please!")
}
}
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
if error != nil {
dispatch_async(dispatch_get_main_queue()) {
EZLoadingActivity.hide()
self.alertMessageSuccessError("Error", messageM: "Oops, something went wrong! Try again, please!")
}
return
}
let json: NSDictionary?
do {
json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as? NSDictionary
} catch let parseError as NSError {
dispatch_async(dispatch_get_main_queue()) {
EZLoadingActivity.hide()
self.alertMessageSuccessError("Error", messageM: "Oops, something went wrong! Try again, please!")
}
return
}
if let parseJSON = json {
if let status = parseJSON["status"] as? String {
if status == "200" {
dispatch_async(dispatch_get_main_queue()) {
EZLoadingActivity.hide()
self.defaultsDataLogin.setObject(true, forKey: "isDone")
self.alertMessageAdM("Successfully!", messageM: "See results!")
}
} else if status == "400" {
dispatch_async(dispatch_get_main_queue()) {
EZLoadingActivity.hide()
self.alertMessageSuccessErrorAdM("Error", messageM: "You have already data!")
}
} else {
dispatch_async(dispatch_get_main_queue()) {
EZLoadingActivity.hide()
self.alertMessageSuccessError("Error", messageM: "Oops, something went wrong! Try again, please!")
}
}
} else {
dispatch_async(dispatch_get_main_queue()) {
EZLoadingActivity.hide()
self.alertMessageSuccessError("Error", messageM: "Oops, something went wrong! Try again, please!")
}
}
} else {
dispatch_async(dispatch_get_main_queue()) {
EZLoadingActivity.hide()
self.alertMessageSuccessError("Error", messageM: "Oops, something went wrong! Try again, please!")
}
}
})
task.resume()
}
しかし、私はhttps://ip6.nl上で、私のサイトをチェックし、http://ipv6-test.com/validate.php Iまし以下の結果:
ありがとう!
ハードコードされたURLはIPv6経由で到達可能ですか? – Alnitak
@Alnitak Apple says私は[IPv6 Networks IPv6 DNS64/NAT64](https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/IPv6Transition/UnderstandingandPreparingfortvIPv6Transition.html#//apple_refの準備と準備のサポートについては、/doc/uid/TP40010220-CH213-SW1)ネットワークとAbout Networkingこのチュートリアルでは、NSURLSessionなどの高水準ネットワークAPIを使用してクライアント側のアプリケーションを作成していて、名前で接続する場合、あなたのアプリがIPv6アドレスで動作するために何かを変更する必要があります。 ' – Roman
@Alnitak私の質問の更新が表示されます。ありがとう! – Roman