IPv6应用商店拒绝

90

我们的更新因ipv6网络连接问题今天已经被拒绝了两次。我们的网络代码在之前的版本和当前版本之间没有变化。

应用程序仅向api.metooapp.io进行https网络请求,该网站已正确配置为ipv6 [0],并在AWS的route53后运行。代码中没有硬编码的IP地址。

我无法复现这个问题,即使按照拒绝通知中提供的链接 [1] 创建一个ipv6网络。看起来我不是唯一遇到这个问题的人 [2]。


@SeanThielen 我也遇到了同样的问题(我在使用 Alamofire v3.4.1),你解决了这个问题吗?问题出在服务器上吗? - Roberto Frontado
@SeanThielen 好的好的,是的,请查看此链接(https://drive.google.com/open?id=0ByceFcHrHDr9Nm9malRhVDVWc2c)。你看到有什么问题吗? - Roberto Frontado
遇到了同样的问题,但是我发现我的应用程序崩溃了,因为我没有很好地处理权限的拒绝。在 http://stackoverflow.com/a/41462025/4944007 的帮助下,我找到了解决方法。 - Ismail Iqbal
1
你买了最新的苹果IPv6转接器吗? - anders
请查看此答案。https://dev59.com/AFkT5IYBdhLWcg3wf_tN#38500762 - Badal Shah
显示剩余8条评论
13个回答

38

经过一番繁琐的努力,我确认了问题出在我们的后端没有正确配置IPv6。显然,AWS不支持IPv6或IPv6-only DNS通过Route53进行。我最终把后端所有面向互联网的位移从AWS上移开了。

我想保留这篇文章,因为我认为随着人们开始提交超越IPv6-only限制的更新,可能会有其他人遇到类似的问题。我发现测试服务器/dns准备情况的最佳工具是:http://ready.chair6.net/


2
你能告诉我,App Store 拒绝的原因是你们的服务器不支持 IPv6 流量吗?我已经连续三次被苹果拒绝了,但我的代码与之前的版本没有改变。我正在使用 Xamarin iOS,并将其连接插件更新到最新版本,因为它们存在 IPv6 的问题。我感到绝望!我无法在我的 iOS 设备上复制崩溃情况(即使通过我的 Mac Internet 共享连接到 NAT64 IPV6 网络)。 - Jon
这个拒绝是由于您的服务器引起的,您的服务器不支持IPv6。Mangist - Pablo Ruan
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Venkatesh
嗨@Venkatesh,你解决了这个问题吗?因为我在同样的情况下被苹果拒绝了,现在卡住了。 - Mohamed Fadl Allah
你好,Sean。我测试了我的API。它未通过这三个测试:DNS(IPv6 NS)、DNS(MX记录)和DNS(Glue)。这三个测试的结果是警告。苹果是否因此拒绝了我的应用?必须通过所有域名测试才行。请访问http://ready.chair6.net/?????。 - JAck
显示剩余2条评论

11
请注意,支持IPv6-only网络IPv6和App Review链接可以帮助确定苹果拒绝的问题所在。
在这种情况下,文章明确指出,您可以设置DNS64 / NAT64测试网络,但“此测试网络与App Review使用的网络不完全相同”,这就是为什么一切都可以在测试环境中工作,但仍然会被拒绝的原因。
此外:
引用: App Review网络(像服务提供商部署的网络一样)支持IPv6到IPv6的连接。因此,如果您的服务器支持IPv6,则应用程序将直接与其通信,而无需经过NAT64转换器。总的来说,这是件好事,但如果服务器声称支持IPv6但IPv6支持存在问题,则可能会让您感到困扰。例如,如果:DNS名称不正确,DNS正确但服务器未侦听IPv6,服务器正在侦听IPv6但失败时请求通过IPv6进入
因此,如果您的后端服务器支持IPv6,则苹果测试网络将使用它,这就是本案例中出错的原因。
我将此作为其他遇到相同问题的用户的参考和起点。

10
我们遇到了同样的问题,结果发现虽然我们为IPv6设置了AAAA记录,但由于我们实际上没有IPv6支持(我们也在使用Route53),这导致了一切混乱。删除AAAA记录解决了这个问题。
我已经关于测试文档和App Review所使用的设置之间的差异提交了一个雷达 - 我们只能诊断它是因为我们的CTO在WWDC上并且能够连接到他们的网络,这不是我们可以定期重现的情况。

有趣。我以相同的方式配置了Route53,将AAAA记录别名到ELB。也许在下一个小版本中,我会尝试在AWS上重新配置,但不包括AAAA记录。你雷达的结果部分准确地反映了我的经验。曾经我重置了路由器、MacBook和iPhone,以完全确保它不是一些荒谬的缓存问题。我会继续调查,但我很高兴更新已经完成,希望永远不再考虑它。 - Sean Thielen
你从苹果那里收到任何关于你的radar的回复了吗? - Kaiserludi
1
@Kaiserludi 虽然没有官方的,但是我在开发者论坛上看到过一些来自 Quinn The Eskimo 的帖子,他们更新了很多信息来帮助你进行调试。这个帖子似乎特别有用:https://forums.developer.apple.com/message/147579#147579 - DesignatedNerd
非常感谢。那个链接确实非常有用。 - Kaiserludi

6
我们遇到了类似的情况。由于IPv6网络中的连接问题,我们的应用程序被拒绝。同时,我们的服务器正在使用AWS。
我已经在我的一侧进行了IPv6 DNS64 / NAT64测试,并且没有发现任何问题,因此我们决定对此次拒绝提出上诉。
我们解释说,在我们这边测试已经成功,并且我们正在使用AWS基础设施。
两天后,应用程序再次经过审核并被接受。

5
我们的应用第一次被拒绝了,我们根据苹果文档设置了本地测试环境,并发现我们的curl库太旧,没有默认启用ipv6。所以我们构建了最新的curl库并使其正常工作。但由于相同的原因它再次被拒绝了。我查了很多信息,发现有人有过同样的经历,只需向苹果审核人员投诉说你的应用在测试环境中运行良好,并要求他们提供工程师的帮助,如果他们坚持认为有错误。当苹果审核团队看到我们的投诉时,在周末批准了我们的应用。
据我所知,您需要检查两个问题。您是否在应用程序中硬编码IP地址?您是否为服务器域设置了AAAA记录以显示它支持ipv6,但您的服务器不侦听ipv6。如果是,请从您的域提供商网站的域设置中删除该AAAA记录。

5

6
你找到解决这个问题的方法了吗?我无法通过苹果审核我的应用程序评论,我已经没有更多的想法了。 - Jon

3

2
这是我在6个月后第二次遇到此问题。之前是在Objective-C项目中使用AFNetworking时,我使用了这个解决方案,并且一次就解决了。现在同样的问题出现在了Alamofire上。这个解决方案对我有用过两次,并且我发现这个问题在谷歌上排名第一,所以我将答案发布出来。
在工作区中搜索AF_INET并将其更改为任何您找到的AF_INET6。如果您正在使用它,则可能位于AFNetworking库或Alamofire库中。它在NetworkReachabilityManager类中。
我从下面的来源中找到了这个答案。
https://dev59.com/M1oU5IYBdhLWcg3wM1G9#38196337
编辑:- 6月24日 -
这帮了我很多次,但是还有一个奇怪的解决方案。在我们最近的项目中,我们应用了这个解决方案,但苹果仍然拒绝了应用程序。然后,我们制作了一个视频,展示了连接到从wifi共享选项创建的NAT64网络时应用程序运行良好的情况。我们通过视频进行了申诉,并获得了应用程序的批准。因此,如果您已经尝试了所有选项,请也尝试这个方法。

2

1
我已按照 Apple文档 的规定执行了IPv6 DNS64/NAT64测试,没有出现任何问题。
然而,我们无法复现崩溃的问题。我们在设备上成功安装了应用程序,没有发生崩溃。
我们拍摄了整个测试过程的视频(包括显示连接性、从testflight下载、NAT64网络连接、应用程序操作),并附上视频文件申请驳回。
最后,应用商店批准了我的应用程序。

1
请确保您的应用程序中没有包括插件在内的硬编码IP地址。 - Phani Sai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接