IPv6-苹果因为不支持IPv6 DNS64/NAT64网络而拒绝了iOS应用 [英] IPv6 - Apple rejects iOS app because of not Supporting IPv6 DNS64 / NAT64 Networks

查看:393
本文介绍了IPv6-苹果因为不支持IPv6 DNS64/NAT64网络而拒绝了iOS应用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

错误在哪里?

Apple拒绝了应用程序并发送了信息:

Apple reject app and sent messege:

性能-2.1

Performance - 2.1

在iPad和iPad上进行审核时,我们在您的应用中发现了一个或多个错误. 在连接到IPv6网络的Wi-Fi上运行iOS 9.3.5的iPhone.

We discovered one or more bugs in your app when reviewed on iPad and iPhone running iOS 9.3.5 on Wi-Fi connected to an IPv6 network.

特别是,当进行表决并且

Specifically, an error is displayed when a vote is made and Supporting IPv6 DNS64 / NAT64 Networks

",如果您使用诸如 NSURLSession 和CFNetwork框架之类的高级网络API编写客户端应用程序,并且按名称进行连接,则无需更改使您的应用可以使用IPv6地址的所有内容."

"If you’re writing a client-side app using high-level networking APIs such as NSURLSession and the CFNetwork frameworks and you connect by name, you should not need to change anything for your app to work with IPv6 addresses."

接下来在 Apple开发者论坛中说:

N 3-我需要更新服务器吗?那要看你在哪里 服务器正在运行:如果您的服务器在更广泛的Internet上运行, 答案是否定的.您的服务器将只能由IPv6设备访问 通过DNS64/NAT64.您应该更新服务器以支持IPv6作为 当然可以,但这是您可以自己做的事情.如果 您的iOS应用程序中嵌入了一个服务器(例如,一个Web 允许用户与您的应用程序之间传输文件的服务器),您 应该确保它在仅IPv6的环境中能很好地工作.

N 3 — Will I need to update my server? That depends on where your server is running: If you have a server running on the wider Internet, the answer is no. Your server will be accessible to IPv6-only devices via DNS64/NAT64. You should update your server to support IPv6 as a matter of course, but that’s something you can do in your own time. If you have a server embedded within your iOS app (for example, a web server that allows users to transfer files to and from your app), you should make sure it works well in an IPv6-only environment.

我的房东说:

我们看不到任何问题,因为将具有IPv6的服务器连接到您的服务器是 IPv4将通过DNAT/SNAT提供

We do not see any problems, for the server with IPv6 to your server is IPv4 will be available through DNAT / SNAT

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

My site (server): http://badroads.info

我在应用程序中的代码(该代码已在一周前在另一个应用程序中得到批准):

My code in 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.nl

But I checked my site on https://ip6.nl and http://ipv6-test.com/validate.php I got the following results:

谢谢!

推荐答案

它不一定是IPv6网络支持问题. 该应用程序崩溃,并且已连接到IPv6网络.可能是两件事. 向审核小组索要崩溃日志,将这些日志符号化,然后找出真正的问题所在.

It doesn't have to be an IPv6 network support issue. The app crashes and it is connected to an IPv6 network. It can be two different things. Ask the review team for crash logs, symbolicate those logs and find out whats the real problem.

这篇关于IPv6-苹果因为不支持IPv6 DNS64/NAT64网络而拒绝了iOS应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆