【问题标题】:Iphone App Rejected Ipv6 IncompatibilityIphone App 拒绝 Ipv6 不兼容
【发布时间】:2016-12-22 07:23:56
【问题描述】:

我的申请因 Ipv6 网络不兼容而被拒绝了两次。

这个问题已经被问过好几次了。大多数解决方案建议避免使用第三方 api 进行 http 请求,并且不要对 ipaddress 进行硬编码。我也没做过。

但是我的服务器必须与 ipv6 兼容还是我的 http 请求有问题。

所以我在这个网站http://ipv6-test.com/validate.php 上测试了我的服务器https://services.fingrowthbank.com/ 以进行Ipv6 就绪测试。它显示为不兼容。这可能是拒绝的原因吗?

http 请求代码

let nsUrlObject: NSURL = NSURL(string: urlAndMethod)!
let nsMutableUrlRequestObj: NSMutableURLRequest = NSMutableURLRequest(URL: nsUrlObject, cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData, timeoutInterval: nstime_out_intervalObj)

nsMutableUrlRequestObj.HTTPMethod = “POST"
let bodyData = httpBodyStr
nsMutableUrlRequestObj.HTTPBody =  bodyData.dataUsingEncoding(NSUTF8StringEncoding)

nsMutableUrlRequestObj.setValue(httpHeaderStr, forHTTPHeaderField: "Authorization")

NSURLConnection.sendAsynchronousRequest(nsMutableUrlRequestObj, queue: NSOperationQueue.mainQueue())
{
  (response, data, error) in

   if response == nil
   {
      print(error)
      alert.view.removeFromSuperview()
      Imps_http_client.showAlertView("Could not connect to the server")
    }else{

    }

 }

【问题讨论】:

  • YES,应用不能在IPv6连接中使用,url是问题检查this
  • 之前它允许 ipv4,但现在它必须支持你所有的 webservicesin ipv6 这才是真正的原因,上次我上传一个应用程序时,我收到了一个警告,所以最好将你的所有 webservices 切换到 ipv6 合规性
  • 你在追逐野鹅。与其担心您的服务器支持 IPv6,不如担心 Apple 告诉您的应用程序中的错误......但您没有告诉我们。

标签: ios iphone swift networking ipv6


【解决方案1】:

您的代码没有问题。问题出在你的服务器端。

根据https://services.fingrowthbank.com/,您的服务器与 IPV6 不兼容。因为我发现您使用的是旧的安全加密,即过时的密码套件。

我在图片内划线。

我使用示例服务器进行了测试。 示例: 苹果。这个苹果正在使用现代密码套件

您的服务器的问题有可能是安全攻击编号 13。这就是苹果拒绝你的应用的原因。使用后期安全更新您的应用。

解决方案:只需将您的服务器更新为现代密码套件

【讨论】:

    【解决方案2】:

    就您使用域名向服务器发送请求而言,此 url 非常好。 according to apple 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. If you aren’t connecting by name, you probably should be.

    检查您的代码或您正在使用的任何第三方组件,并确保您没有发送任何使用 IP 地址而不是域名的请求。具体来说,检查Reacahbility 代码。如果您正在使用它,请不要使用函数 reachabilityWithAddress ,而是使用 reachabilityWithHostNamereachabilityForInternetConnection 也在使用 reachabilityWithAddress - 如果您正在使用它,请编辑它。

    最后,您可以通过使用 mac 创建 ipv6 网络并使用该网络测试应用程序来验证您的应用程序是否支持 ipv6。

    【讨论】:

    • 我没有使用第三方 api 进行 http 请求。我的 Reachabilty 代码也没有问题。仅拥有一个域名是否满足应用程序可以在 ipv6 网络上运行。
    • 是的,根据这个链接,developer.apple.com/library/content/documentation/… 满足了。为什么不创建测试 ipv6 网络并检查。
    • 我已经做到了。我的问题是我的服务器是否接受来自 ipv6 网络的请求。
    猜你喜欢
    • 1970-01-01
    • 2016-12-31
    • 2016-12-01
    • 2016-12-07
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多