iOS 应用上架,必须支持 IPv6 线路访问,填坑之路亲测 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
iConnect
V2EX    iDev

iOS 应用上架,必须支持 IPv6 线路访问,填坑之路亲测

  •  
  •   iConnect 2017-10-24 15:51:36 +08:00 10058 次点击
    这是一个创建于 2984 天前的主题,其中的信息可能已经有所发展或是发生改变。

    曾经上架 appstore 被各种原因拒到吐血,本以为对苹果的套路早已烂熟于胸,套路嵌套路,防不胜防,这次载到阿里云上了。网络上各种教程没一个靠谱的(没办法,套路常新),还有人靠这个在淘宝上收钱的。这两天又填了一次这个坑,明确两点:

    1、不用任何费用(购买教育网 ipv6 专线当然可行,但没必要)
    2、苹果上架审核亲测可行。

    文章带截图,不重发了,原文在这: https://qingqing.com/post/1021206/time

    25 条回复    2017-10-27 13:05:33 +08:00
    Leafove
        1
    Leafove  
       2017-10-24 16:04:33 +08:00
    支持 ipv6 是说你的应用在 ipv6 环境下也可用,而不是需要你的服务器处于 ipv6 下
    SourceMan
        2
    SourceMan  
       2017-10-24 16:09:16 +08:00
    然而你理解错了?
    1#正解,这个支持应该是相当简单了,分享出一个 ipv6 的 SSID,手机连上去,APP 不崩溃就可以了
    elgae
        3
    elgae  
       2017-10-24 16:10:50 +08:00
    我要喷,我觉得不要把因为不读文档而没做对的事称为“坑”,显得自己有点 stupid。
    mornlight
        4
    mornlight   div class="badges">   2017-10-24 16:13:30 +08:00
    服务器可以仅支持 IPV4 的,你把方向搞错了。
    jasontse
        5
    jasontse  
       2017-10-24 16:13:44 +08:00 via iPad
    这篇文章完全是错的。只要你不硬编码 IPv4,利用好 DNS64,服务器完全不用去折腾 IPv6。
    iConnect
        6
    iConnect  
    OP
       2017-10-24 16:27:49 +08:00
    @Leafove
    @SourceMan
    那你说说没有 IPv6 隧道代理,苹果的审核人员怎么连你的国内服务器?


    @elgae
    @mornlight
    @jasontse

    国内的服务器都没有 IPv6 地址,所有才有这个必要的。
    hongshaoyuancn
        7
    hongshaoyuancn  
       2017-10-24 16:33:01 +08:00
    挂个国外 vps 做反代
    jasontse
        8
    jasontse  
       2017-10-24 16:36:47 +08:00 via iPad
    @iConnect 苹果审核的环境并不是一个 IPv6 孤岛,它可以通过 NAT64 来访问到 IPv4 网络,你只要满足这种网络兼容环境就行了。
    jasontse
        9
    jasontse  
       2017-10-24 16:37:54 +08:00 via iPad
    简单来说你的这种「代理」其实苹果已经自备
    iConnect
        10
    iConnect  
    OP
       2017-10-24 16:47:28 +08:00
    @jasontse 事实上并不行。
    mornlight
        11
    mornlight  
       2017-10-24 16:48:46 +08:00
    @iConnect #6

    - 为什么 App Store 关于 IPV6 的规则并不强制要求服务器支持 IPV6 地址访问?
    - 因为国内绝大多数服务端都没有 IPV6 地址,他们的 App 也都好好的。

    一个基本的逻辑推导。

    更多的细节,可以参考其他人写的关于这条规则的经验总结。「网络上各种教程没一个靠谱的」更可能的原因是你运气不好或者方式不对。即使你完全符合要求,也有一定概率被这个原因拒掉。
    当然,你的这个思路也是可以解决问题的。
    iConnect
        12
    iConnect  
    OP
       2017-10-24 16:59:07 +08:00
    @mornlight - 因为国内绝大多数服务端都没有 IPV6 地址,他们的 App 也都好好的。

    哪个公有云服务器有提供过 IPv6 地址吗?

    有一点你可能没注意,以前的方案是针对经典网络的,对专有网络的 local 配置是不对的。
    Leafove
        14
    Leafove  
       2017-10-24 17:16:59 +08:00
    iConnect
        15
    iConnect  
    OP
       2017-10-24 17:35:30 +08:00 via Android
    @jasontse

    if you ’ re writing a server-side app or other low-level networking app, you need to make sure your socket code works correctly with both IPv4 and IPv6 addresses.

    这个要怎么通?你今年有上架 server-side 应用实际能过审吗?
    azuis
        16
    azuis  
       2017-10-24 17:48:04 +08:00
    你没有理解苹果的意思。苹果的意思是只要在 NAT64 下面能通就行了。简而言之就是说只要没有 hard code IP 地址或者使用某些不兼容的库,都是能正常访问的。 别说国内了,国外 Azure GCE 也都没 IPv6 地址的。
    azuis
        17
    azuis  
       2017-10-24 17:51:48 +08:00
    苹果的那个回复只是个模板。之前提交的时候提供了错误的测试账号。 也说要检查 IPv6 问题,但是实际上只是测试账号问题,重新提交后即正常过审。
    damondev
        18
    damondev  
       2017-10-24 17:54:05 +08:00
    没必要啊
    jasontse
        19
    jasontse  
       2017-10-24 17:58:30 +08:00 via iPad
    @iConnect
    这么说吧。假设你的服务器是 123.123.123.123 不支持 v6,然后域名是 example.com 没有 AAAA。
    苹果的 NAT64 网络会通过以下流程来兼容:
    当域名被 DNS 服务器解析,发现没有 AAAA 记录,会被「污染」一个 64:ff9b::123.123.123.123 (非严谨写法)。
    这样原本没有 AAAA 的就凭空多了一个 AAAA。
    你完全可以按照原生 v6 的方式去连接这个「捏造」的地址,因为 64:ff9b: 开头的全部指向一个可以透明代理到 v4 的服务器上。
    剩下的就不用动了。
    iConnect
        20
    iConnect  
    OP
       2017-10-24 18:04:30 +08:00 via Android
    @jasontse 我知道哇,理论上没有问题,我本地可访问的测试截图都提交去申诉了,就是不断的被驳回再驳回。

    实际上 App 驳回之后,什么都没改,把隧道调通,就秒过了。
    odirus
        21
    odirus  
       2017-10-24 18:08:26 +08:00
    最近新上架的应用检查比较严格,因为我们也遇到了,我们也不打算去猜测苹果神马意思,所以我们就把 IPV6 弄起来了,随便他测试。

    1) 找一台支持 IPV6 的服务器,在服务器上做一个反向代理到你现在真正服务器即可。
    2) 解析域名的 AAAA 记录到 IPV6 地址。
    3) 记得测试一下从美利坚通过 IPV6 访问时的速度,至少要让延迟能够接受吧,延迟不能接受就买条好点的线路回国。

    备注:
    国内景安网络支持分配 IPV6
    国外很多都支持分配 IPV6,例如 DigitalOcean

    坑:
    我们用的西部数码的 DNS,添加 AAAA 记录后不能自动同步,需要点击 “立即诊断” 才行
    iConnect
        22
    iConnect  
    OP
       2017-10-24 18:08:45 +08:00 via Android
    @jasontse 补充一下,我提交的应用是 sever 端依赖度很高的。
    kylix
        23
    kylix  
       2017-10-25 10:43:07 +08:00
    我司一个 H5 的 APP,服务器就布在公司,企业固定 ip 宽带,没有 ipv6 地址,也没布什么 ipv6,前几天已经上架了。
    (ps: APP 应该是支持 ipv6 环境的)
    Vitta
        24
    Vitta  
       2017-10-26 17:48:36 +08:00
    用电脑创建一个 ipv6 的热点, 手机连, 录屏,打开 app, 随便操作一会, 把视频发到 itunes 里面就过了
    xi_lin
        25
    xi_lin  
       2017-10-27 13:05:33 +08:00
    只是日常审核抽风,你就算搭了也可以会继续被他们说拒
    t/357223
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2804 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 14:49 PVG 22:49 LAX 06:49 JFK 09:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86