最近一直看到有人说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()
参考网址: