美文网首页
iOS 审核 IPV6 问题

iOS 审核 IPV6 问题

作者: 曾令伟 | 来源:发表于2016-06-08 09:49 被阅读1172次

    前几日更新我们app,接连被打回来几次,后来苹果客服来电话说从六月一号起,所有审核的app都要求支持IPV6。根据我们游戏是用  Quick-Cocos2d-x3.3开发,网上搜集了一些资料,发现很多人都遇到此问题,根据网上提供的方法,昨天提交了一个包,审核通过。

    如果用到了curl(也就是network.createHTTPRequest),按照官方教程升级curl就行了(把curl目录下的三个.a加入到工程,和之前比多的那两个需要添加进工程)

    如果用到了websocket 也按照官方出的教程升级下websocket就行了(替换websockets下的.a,添加websockets目录下的include中的两个.h文件)。

    如果用到了luasocket。先看看版本吧,具体哪个版本以上忘记了。可以检测luasocket代码是否有tcp6()这个函数。如果有说明是支持的。然后在SocketTCP的connect里面加上判断

    代码:

    local isipv6_only = false

    local addrinfo, err = socket.dns.getaddrinfo(self.host);

    for i,v in ipairs(addrinfo) do

    if v.family == "inet6" then

    isipv6_only = true;

    break;

    end

    end

    print("isipv6_only",isipv6_only)

    -- dump(addrinfo)

    if isipv6_only then

    self.tcp = socket.tcp6()

    else

    self.tcp = socket.tcp()

    end

    OK了 很简单。升级过程中可能会出一些错误。一般都是文件没拷贝全之类的,逐一解决就行了。

    最后切记只能使用域名。不能使用ipv4的或者ipv6的地址。而且服务器完全无需改动。

    PS.

    升级最好直接下载cocos3.11。然后找到相关模块完整拷贝。比如websocket,external/websockets 完整拷贝之后。还需要替换新的头文件。位置在cocos/network/WebSocket.cpp cocos/network/WebSocket.h

    如果之前版本太低,可能会报错EVENT_RESET找不到。照着最新版的加上去就行了。(这里我做的处理是既然没用到,不如就直接注释掉这句代码了)

    项目用到了curl跟luasocket。

    参考:http://forum.cocos.com/t/quick-ipv6-cocos-lua/37105

    相关文章

      网友评论

          本文标题:iOS 审核 IPV6 问题

          本文链接:https://www.haomeiwen.com/subject/wrkjdttx.html