Где ошибка?
Apple отклоняет приложение и отправляет messege:
Производительность - 2.1
Мы обнаружили одну или несколько ошибок в вашем приложении, когда их рассматривали на iPad и iPhone работает под управлением iOS 9.3.5 на Wi-Fi, подключенном к сети IPv6.
В частности, при голосовании отображается ошибка, и поддержка IPv6 DNS64/NAT64 сетей
"Если вы пишете приложение на стороне клиента, используя высокоуровневые сетевые интерфейсы, такие как NSURLSession и фреймворки CFNetwork, и вы подключаетесь по имени, вам следует не изменять что-нибудь для вашего приложения для работы с адресами IPv6."
Далее на Форумы разработчиков Apple говорит:
N 3 - Нужно ли мне обновлять свой сервер? Это зависит от того, где сервер работает: Если у вас есть сервер, работающий в более широком Интернете, ответ не. Ваш сервер будет доступен только для устройств с поддержкой IPv6 через DNS64/NAT64. Вы должны обновить свой сервер, чтобы поддерживать IPv6 как конечно, но это то, что вы можете сделать в свое время. Если у вас есть сервер, встроенный в ваше приложение iOS (например, веб-сайт сервер, который позволяет пользователям передавать файлы в и из вашего приложения), вы должен убедиться, что он хорошо работает в среде только для IPv6.
Мой хост говорит:
Мы не видим никаких проблем, поскольку сервер с IPv6 на вашем сервере IPv4 будет доступен через DNAT/SNAT
Мой сайт (сервер): http://badroads.info
Мой код в приложении (этот код был одобрен в другом приложении неделю назад):
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
Я получил следующие результаты:
Спасибо!