ios之如何適配ipv6

We discovered one or more bugs in your app when reviewed on iPad running iOS 10.0and iPhone running iOS 10.0 on both Wi-Fi connect to ipv6.

第一步:測試客戶端是否能夠在ipv6下運行


首先得配置IPv6網絡環境,至于如何配置,自行百度"如何搭建IPv6的測試環境"。

然而配置成功后,用手機連接的WiFi DNS也是正確的,運行程序測試怎么不成功呢,找了好多資料,猜測是DNS解析除了問題。

那就換另一種方法配置IPv6:拔掉網線,用mac連接WiFi(沒有WiFi可以用手機流量分享熱點),然后在共享中用前一種方法配置IPv6(不知道具體是共享到電腦那個端口,索性全點上),記得選中"創建NAT64 網絡"。這時直接通過模擬器測試succeed!

測試成功了。你以為就沒問題了?這里提交依然可能被拒,手機和 Mac 之間是 IPv6 沒錯,但 Mac 和你的服務器之間還是 IPv4 連接。

第二步:測試服務器是否能夠支持ipv6


如果這項測試通過,可以說明:你的客戶端應用在 IPv6 網絡下,是(基本)沒有問題的,但是無法驗證你的服務器能夠對 IPv6 網絡做出正確的響應。然而,蘋果審核的時候,卻是要去 DNS 服務器詢問你的服務器的 IPv6 地址,然后進行訪問。如果查詢不到 IPv6 地址,可能會進而詢問 IPv4 地址,然后進行轉換使用。蘋果明確表示服務器不需要支持 IPv6,但是有一點蘋果沒有指出來,那就是,雖然你的服務器不用支持 IPv6,但是必須正確響應 IPv6 的 DNS 查詢。

如何驗證呢??使用以下命令即可:

$ dig +nocmd +nostats example.com AAAA

如果返回的 status 為 NOERROR, 那基本就沒什么問題,但是一定要在多個網絡環境下測試都通過才行。如果返回的是其他的響應,尤其是 SERVFAIL 的情況,那就基本杯具了。由于你已經驗證了客戶端沒有問題,現在要做的,就是催著你的運維、后臺啥的,趕緊去改 DNS 配置,直到穩定返回 NOERROR 為止。


第三步:蘋果的服務器是否能夠訪問我們的ip地址


現在很多人碰到的情況就是客戶端可以完成ipv6的訪問,服務器本身也可以支持ipv6.但是就審核不通過。發生這樣的情況很可能是蘋果那邊的服務器無法訪問你的ip地址。打個比方就好像歪果仁要來中國旅游需要辦簽證,而中國就不給辦理。 解決辦法就是,通過將通過一個代理隧道將你的ipv4連接到ipv6Internet地址,當然你得先擁有支持IPv6的主機或者連接ipv4的路由。根據后臺的說法,先去我們用的是教育網,后面切換到了一個香港的公司。因為不是很了解,我就不班門弄斧了。不過通過這樣的操作我們確實通過了ipv6的審核。

最后,留下一個地址,祝您好運!如果能幫助您別忘點贊~https://www.tunnelbroker.net/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容