首页 文章

IPv6 - Apple拒绝应用iOS

提问于
浏览
14

错误在哪里?

Apple拒绝app并发送消息:

性能 - 2.1我们在连接到IPv6网络的Wi-Fi上运行iOS 9.3.5的iPad和iPhone上查看了应用程序中的一个或多个错误 . 具体来说,投票时显示错误并支持IPv6 DNS64 / NAT64网络“如果您使用NSURLSession和CFNetwork框架等高级网络API编写客户端应用程序并按名称连接,则应该不需要为您的应用更改任何内容以使用IPv6地址 . “

接下来Apple Developer Forums说:

N 3 - 我是否需要更新服务器?这取决于服务器的运行位置:如果您在更广泛的Internet上运行服务器,答案是否定的 . 只有IPv6设备才能通过DNS64 / NAT64访问您的服务器 . 您应该更新服务器以支持IPv6,但这是您可以在自己的时间内完成的事情 . 如果您的iOS应用程序中嵌入了服务器(例如,允许用户与应用程序之间传输文件的Web服务器),则应确保它在仅限IPv6的环境中正常运行 .

我的主人说:

我们没有看到任何问题,因为服务器上带有IPv6的服务器将通过DNAT / SNAT提供IPv4

我的网站(服务器):http://badroads.info

我在App中的代码( this code was approved in another application a week ago ):

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.nlhttp://ipv6-test.com/validate.php我得到了以下结果:
Results

Results

谢谢!

2 回答

  • 3

    它与您的服务器无关 .

    您的应用程序中必须有几个API不支持IPV6(例如可达性) . 请更新那些支持最新和IPV6的用户 .

    我认为NAT64并没有那么大的帮助 .

  • 3

    它不一定是IPv6网络支持问题 . 应用程序崩溃,并连接到IPv6网络 . 它可以是两个不同的东西 . 向审核小组询问崩溃日志,象征这些日志并找出真正的问题 .

相关问题