IPv6 – 苹果拒绝应用iOS
错误在哪里?
苹果拒绝应用程序并发送消息:
性能 – 2.1
在连接到IPv6networking的Wi-Fi上运行iOS 9.3.5的iPad和iPhone上进行审核时,我们发现您的应用中存在一个或多个缺陷。
具体而言,投票时出现错误, 支持IPv6 DNS64 / NAT64networking
“如果您使用NSURLSession和CFNetwork框架等高级networkingAPI编写客户端应用程序,并通过名称进行连接,则不需要更改应用程序的任何内容以使用IPv6地址。”
接下来在苹果开发者论坛上说:
N 3 – 我需要更新我的服务器吗? 这取决于你的服务器在哪里运行: 如果你的服务器运行在更宽的互联网上,答案是否定的 。 您的服务器将可通过DNS64 / NAT64访问仅IPv6设备。 你应该更新你的服务器来支持IPv6,但这是你自己的事情。 如果您的iOS应用程序中embedded了服务器(例如,允许用户将文件传入和传出应用程序的Web服务器),则应确保它在纯IPv6环境中正常工作。
我的主持人说:
我们没有看到任何问题,对于服务器与IPv6到您的服务器是IPv4将可通过DNAT / SNAT
我的网站(服务器): http : //badroads.info
我在App中的代码( 这个代码在一个星期前被另一个应用程序批准了 ):
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我得到了以下结果:
谢谢!
这不是关于你的服务器。
在您的应用程序中必须有几个API不支持IPV6(例如Reachability)。 请更新那些最新的和IPV6支持的。
我认为NAT64不是很有帮助。
它不一定是IPv6networking支持问题。 该应用程序崩溃,并连接到IPv6networking。 它可以是两个不同的东西。 询问审查小组的崩溃日志,象征着这些日志,并找出什么是真正的问题。