原文:
關於IPV6審覈被拒的完整分析php
自從去年6月1號Apple明文規定全部開發者提交新版本都必須支持IPV6-Only的網絡,估計不少iOS開發者都遇到因爲IPV6網絡不支持形成的審覈被拒的狀況, 我被坑的不輕啊, 下面就來分析一下IPV6問題如何解決。html
首先附一個審覈被拒的原文:ios
Guideline 2.1 - Performance - App Completeness
We discovered one or more bugs in your app when reviewed on iPad running iOS 10.3.2 on Wi-Fi connected to an IPv6 network.
Specifically, the app launched to a blank page.
Please see attached screenshots for details.gitNext Steps
To resolve this issue, please run your app on a device while connected to an IPv6 network (all apps must support IPv6) to identify any issues, then revise and resubmit your app for review.
If we misunderstood the intended behavior of your app, please reply to this message in Resolution Center to provide information on how these features were intended to work.
For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce the issue. For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue.github
大意是在iPad上運行iOS 10.3.2 wi - fi鏈接到IPv6網絡, 應用程序啓動是一個空白頁。請在設備上運行您的應用程序,鏈接到IPv6網絡, 而後修改並從新提交你的應用程序進行審查。objective-c
首先IPV6,是對IPV4地址空間的擴充。目前當咱們用iOS設備鏈接上Wifi、4G、3G等網絡時,設備被分配的地址均是IPV4地址,可是隨着運營商和企業逐漸部署IPV6 DNS64/NAT64網絡以後,設備被分配的地址會變成IPV6的地址,而這些網絡就是所謂的IPV6-Only網絡,而且仍然能夠經過此網絡去獲取IPV4地址提供的內容。簡單來講就是IPV4不夠用了, 要換IPV6, 這從蘋果一貫的以用戶體驗爲主出發, 其實也是爲了讓用戶能用着舒服;
測試是否支持IPV6網上已有更多詳細的方法, 照着搭建就行, 下方附搭建環境的方法:服務器
總的來講有三個方面的問題:微信
除了這些, 還有些其餘因素, 好比蘋果正在審覈, 而大家的後臺在部署接口, 這種纔是真的坑爹😤啊, 很少說, 感受眼淚止不住往下流了;網絡
①檢測服務器是否支持IPV6
終端輸入如下代碼:(參照網上方法)app
dig +nocmd + nostats 你的域名 AAAA
這是看看大家的服務器在IPV6下是否有迴應。
②更改服務器配置
阿里雲 Ubuntu 支持 IPv6 的完整步驟
這些問題通常會出如今那些維護的APP裏面, 因爲是初次開發APP的人所處的時間相對較遠, 因此項目裏所用的SDK會有一些功能缺失; 下面介紹幾個第三方SDK的問題;
①Reachability
緣由以下介紹:
#pragma mark reachabilityForLocalWiFi
//reachabilityForLocalWiFi has been removed from the sample. See ReadMe.md for more information.
//+ (instancetype)reachabilityForLocalWiFi;複製代碼
②JPush極光推送(v2.1.7開始支持)
這個是咱們項目裏遇到的問題, SDK版本低了, 不支持IPV6;
③微博SDK(v3.1.4開始支持)
④友盟(v5.2.1開始支持)
⑤微信(v1.5開始支持)
⑥QQ(未說明)
⑦支付寶(未說明)
⑧百度地圖(v3.0.0開始支持)
⑨環信(v3.1.3開始支持)
⑩科大訊飛語音(v1.133開始支持)
固然還有不少其餘的SDK, 這裏就不一一列舉了, 根據項目裏用了哪些, 看下官方文檔SDK版本歷史比對一下就行;
其實對於ipv6_Only的處理,從兩大方面進行本身審覈:自身網絡請求和三方涉及網絡請求, 畢竟是因爲網絡問題;
關於AFNetworking是否支持IPV6, 下面是一網友的說法:
而版本支持是在3.0之後;
固然, 據說網友還遇到了其餘的問題:(這個我沒遇到, 不過仍是在這裏記一下😆)
內網的訪問下是不可能鏈接到本身的服務器,後面測試一下公網阿里雲的服務器,可以正常鏈接,這個多是DNS64在搜索ipv6的過程當中,並無搜索內網的網絡,致使內網鏈接失敗;
若是這些仍是沒能解決你的問題, 能夠看看下面這篇文章:
www.jianshu.com/p/a6bab07c4…
最後感謝參考文章做者的分享, 但願攻城獅們早日解決bug, 繼續擼代碼, O(∩_∩)O哈哈~