最近一直看到有人說app因為沒有適配IPv6而被拒的,可是我的app卻什么都沒做也沒有被拒,閑來無事看了看原因。
一、簡單測試
首先,你先搭建一個IPv6的本地熱點環境,如果通過這個熱點環境你的app可以正常訪問,那問題應該不大,如果出現bug那審核肯定是過不了的。
和平時創建熱點的方法基本一樣,只有這里要按住option鍵,然后點擊sharing,這樣在接下來的頁面會出現Create NAT64 NETWORK 然后選中它 ?這樣創建出來的熱點就是帶有IPv6的熱點。
我測試了下,我的app是可以正常訪問的,因為我的app用的是AFN網絡請求,雖然還是2.0版本,但是對于審核來說是夠了,因為蘋果的審核團隊暫時還不會檢測你的app是否包含只支持IPv4的API,但是為了安全起見,還是需要你做適配。
二、如何適配IPv6
1.使用高版本的網絡框架,因為高版本的網絡框架適配IPv6已經幫我們實現了,底層的框架適配起來容易產生bug,但是如果確實需要底層的API,那就只能自己研究如何適配啦(我暫時不知道,哈哈)。
2.不要用IP地址,用域名
3.使用足夠大的存儲容器,以至于可以放得下IPv6地址
4.檢查源碼是否兼容IPv4和IPv6
inet_addr()
inet_aton()
inet_lnaof()
inet_makeaddr()
inet_netof()
inet_network()
inet_ntoa()
inet_ntoa_r()
bindresvport()
getipv4sourcefilter()
setipv4sourcefilter()
參考網址: