ios审核被拒、提示ipv6、实际是阿里云OSS的问题

背景:

被ios开发告知因为ipv6问题app审核被拒,首先是想到把阿里云的ECS服务器上配置上ipv6,但感觉不应该是服务器的问题,国内运营商的网络都不支持ipv6,服务器支持也没用啊!于是咨询了下阿里云的客服,客服回答说:


然后搜了很多文章,说什么的也有,苹果官网的文档是这么说的:https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW1


大体是说,如果是客户端app,只要使用的是高级的网络api比如:NSURLSession和CFNetwork框架,然后使用的是域名来访问网络,那么不需要做任何改动。

貌似确实没提到服务端的任何事情,接着往下看:


大体是说,客户端向DNS64的服务器发起dns查询,希望能获得一个ipv6地址。如果DNS64服务器能够找到域名对应的ipv6地址就直接返回给客户端,如果没找到,DNS64服务器会去获取ipv4的地址,然后把ipv4的地址合成ipv6的地址,然后再回传给客户端。这样的话,客户端就总是能够获取到ipv6地址了。

也就是说,服务器支不支持ipv6都没关系的,DNS64服务器能自动把ipv4地址合成ipv6地址。

接着往下看:


被拒的原因可能是:

(1)ip地址硬编码

(2)配置文件中有ip地址

(3)很多app都会直连ip地址来做做网络连通性检查

(4)使用了底层的ipv4的网络api,比如:inet_addr(),inet_aton(),inet_lnaof(),inet_makeaddr(),inet_netof(),inet_network(),inet_ntoa(),inet_ntoa_r(),bindresvport(),getipv4sourcefilter(),setipv4sourcefilter()

(5)使用短地址结构来存储网络地址,比如:uint32_t, in_addr, and sockaddr_in

也就是说,只要做到了以上几点,基本上是没问题的。


然后网上也有说,NSURLConnection导致审核不通过的,NSURLConnection从ios9已经被废弃掉了,不管是不是因为这个原因,都不应该在代码中使用了。


综上所述:

(1)ipv6被拒问题跟服务器、网络没有半毛钱关系

(2)ipv6问题主要还是客户端ip地址硬编码、底层api使用不当导致。

-----------------------------------------------------------------------------------------------------------------------

因为苹果给的截图是音频播放界面,说是没有声音,最终判断应该是无法获取阿里云oss上的音频文件导致。因此,我们弄了一个开关,客户端的请求先到我们的服务器,服务器再去请求阿里云oss,通过服务器中转一下,服务器跟阿里云是通的啊,按道理说应该是可以的。等审核通过以后,再把开关打开就可以了。

很悲剧的是,这样改了以后,提交到应用商店,又被拒了!

实在没辙了,只能把测试账号里面涉及到的音频文件放到了服务器上的本地目录,然后就审核通过了!

实在解释不通啊!

TMD阿里云OSS,必须换七牛!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值