GJM : 关于IOS必须支持ipv6网络的爬坑经历 [转发]

原帖地址 : http://blog.csdn.net/u012424962/article/details/52497259

前不久,ios审核规定,APP一定要在ipv6的网络上运行才能通过审核。(以本人多年的开发经验,已经预想到前方必定有大坑!!

  于是查了一下ipv6的定义:
   
   什么是IPv6?
   引自维基百科:“互联网协议第六版(IPv6)是最新版的互联网协议(IP),这个通讯协议提供了身份验证和计算机在网络上的定位系统以及因特网传输。”设备可   以运转在IPv4-only(先前的标准)或IPv6-only的网络上,或者同时支持两者。苹果的新的要求意味着应用必须能够运转在一个IPv6-only的网络上。
 
  好吧!也不过如此(其实作者内心一脸懵逼,这是啥??????)
  还有unity官方也发出申明,他们是支持ipv6网络的!详细地址参考:https://blogs.unity3d.com/cn/2016/05/10/unity-and-ipv6-support/
 
  作者也就没太在意,可能是自己想多了.......
 
   然后坐等APP通过审核,但是结果是: apple发来邮件,“您的APP不支持IPV6网咯,请您解决问题后再提交审核.....”,
 
  (好吧,肯定没那么简单)
  然后检测在unity使用httpwebrequest 这个类时,服务器一直无法连接到.........
 
   怎么办好呢?只能把有关于httpwebrequest 的代码换成WWW或者UnityWebRequest的写法了,我用的是unity5.2版本,这两个方法是可以在ipv6网络下面使用的,但是坑来了,由于项目中我们涉及到断点续传功能,这个功能WWW或者UnityWebRequest是无法写的......(天啊!!),所以换种写法这个想法已经被否决了,那怎么办了?
 
  于是作者查阅了各种文档,翻阅了各个网站,终于在一个偏僻的外国网站看到一个哥们和我遇到了相同的问题,然而。。。。帖子下面并没有人回复。。。
 
  后来,看了官方的解释,好像是unity版本的问题,所以作者决定更新unity版本,更新到unity5.3.5,(现在苹果更新unity,网络不好,网络经常断,下了很久才下载好),这下应该解决问题了吧?
 
  作者还是太天真了,因为我们访问服务器用的是固定的IPV4地址,如xx.xx.xx.xx,所以还是无法访问,然后我这才去申请了服务器的域名,该为用域名访问服务器,这下才真的可以用httpwebrequest来做断点续传的下载!
  
  很多人以为这就解决问题了吧!其实后面有个更大的坑来了........
  由于更新了unity,所以之前用5.2打包的Assetbundle的shader全部丢失了,必须要用5.3.5同版本的unity 再重新打包一次才行(不要和我说什么高版本可以兼容低版本的鬼话,这个unity官方也说了会存在这个问题)
 
  所以我们成千上万个Assetbundle都重新打包,上传.........
 
  好吧,终于解决了,等等!为什么我们的音频文件都发不出声............................
 
 
  unity5.3.5还有一个惊天巨坑,那就是如果你用Assetbundle.LoadAsyncAsset异步加载资源的方式去加载资源包,无论怎样都加载不了资源,而我们加载音频时都是用异步加载的方法(此时作者内心已经奔溃!!!!!!!!!)
 
 
 
 只能把代码里面所有用异步加载的脚本都改成同步加载了!!
 
 
  最终,到此才正真解决问题!!!

 

posted @ 2017-02-21 13:43  TDou  阅读(305)  评论(0编辑  收藏  举报