我们的更新今天因ipv6网络连接问题被拒绝了两次。我们的网络代码在之前的版本和当前版本之间没有变化。
该应用程序仅向api.metooapp.io发出https网络请求,该请求已正确配置为ipv6 [0]并在AWS上的route53后面运行。代码中没有硬编码的IP地址。
即使按照在[1]创建ipv6网络的步骤(即拒绝通知中提供的链接),我也无法重现此问题。看起来我不是唯一遇到此问题的人,[2]。
答案 0 :(得分:36)
经过相当多的压力之后,我可以确认问题是我们的后端未正确配置IPv6的问题。显然,AWS不支持IPv6,也不支持通过Route53支持IPv6的DNS。最后,我最终将所有面向互联网的互联网部分远离AWS。
我想放弃这一点,因为我认为可能会有其他人发现自己遇到类似的问题,因为人们开始提交更新超过仅限IPv6的限制。我发现用于测试服务器/ dns准备情况的最佳工具是:http://ready.chair6.net/
答案 1 :(得分:11)
请注意,Supporting IPv6-only Networks和IPv6 and App Review链接可以帮助您确定苹果拒绝的问题。 在这个特定情况下,文章明确指出您可以设置DNS64 / NAT64测试网络,但“此测试网络与App Review使用的网络不完全相同”,这就是为什么一切都可以在测试环境中工作并仍然具有该应用被拒绝。
此外:
App Review网络,就像服务部署的网络一样 提供商确实支持IPv6到IPv6的连接。因此,如果你的 服务器支持IPv6,您的应用程序将直接与它通信,而无需继续 通过NAT64翻译。总的来说,这是一件好事,但是 如果您的服务器声称支持IPv6,那么它可能会让您失望 支持被打破了。例如,如果:DNS名称不正确DNS 是正确的,但服务器没有监听服务器的IPv6 收听IPv6但在IPv6上发出请求时失败
因此,如果您的后端服务器支持IPv6,Apple测试网络将使用它,在这种情况下出现了错误。
我将此添加为遇到相同问题的其他用户的参考和起点
答案 2 :(得分:10)
我们遇到了同样的问题,但事实证明我们已经为IPv6设置了AAAA记录,因为我们实际上并没有IPv6支持(我们也使用Route53),它一切都搞定了。删除AAAA记录修复了该问题。
我已经提交了a radar关于测试文档与App Review正在使用的设置之间的差异 - 我们只能诊断它,因为我们的CTO在WWDC并且能够连接到他们的网络,这不是我们可以定期复制的情况。
答案 3 :(得分:6)
我们遇到了类似的情况。我们的应用程序因IPv6网络中的连接问题而被拒绝。我们的服务器也在使用AWS。
我已经执行了针对IPv6 DNS64 / NAT64的测试而没有任何问题,我们决定对此拒绝提出申诉。
我们解释说,我们方面的测试已经成功完成,我们正在使用AWS基础架构。
再过两天,应用程序再次被审核并接受
答案 4 :(得分:5)
我们遇到了同样的问题。我们的应用程序因ipv6原因被拒绝了serval时间。但我们已经在ipv6网络上进行了测试,该网络被称为APPLE的官方文件:https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW1
答案 5 :(得分:5)
我们的应用程序第一次被拒绝,我们根据apple document设置了本地测试环境,发现我们的curl lib太旧了,默认情况下没有启用ipv6。所以我们构建最新的curl lib并且它可以工作。但由于同样的原因,它再次遭到拒绝。我检查了很多信息,发现有人有相同的经验,只是抱怨Apple评论员说你的应用程序在测试环境中运行良好,并要求他们提供工程师帮助,如果他们坚持有一些错误。 Apple审核小组在周末看到我们的投诉时批准了我们的应用程序。
据我所知,您需要检查2个问题。你在应用程序中硬编码IP地址吗?您是否为服务器域设置AAAA记录以显示它支持ipv6,但您的服务器不会收听ipv6。如果是,请从域名提供商网站中删除域名设置中的AAAA记录。
答案 6 :(得分:3)
可达性库必须支持IPv6网络设置。所以请使用此Reachability类。
答案 7 :(得分:2)
我执行了IPv6
DNS64/NAT64
的测试,没有Apple documentation
但是,我们无法重现该问题(崩溃)。 我们成功地在我们的设备中安装应用程序而不会崩溃。
最后,应用商店已批准我的应用
答案 8 :(得分:2)
这是我第二次在6个月后遇到这个问题。以前它是使用AFNetworking的Objective-C项目,我使用这个解决方案,它一次性工作。现在和Alamofire一样。伙计这个解决方案为我工作了2次,我发现这个问题首先在谷歌,所以我发布答案。
在工作区中搜索AF_INET,并在找到的任何位置将其更改为AF_INET6。我认为如果你使用它,它必须在AFNetworking库或Alamofire库中。它在NetworkReachabilityManager类中。
我从以下来源找到了这个答案。
https://stackoverflow.com/a/38196337/4030971
编辑: - 6月24日 -
这对我帮了很多次,但也有一个奇怪的解决方案。在我们最近的项目中,我们已经应用了这个解决方案但苹果仍拒绝了该应然后我们制作了一个视频,显示该应用程序正常运行,连接到通过WiFi共享选项在Mac上创建的NAT64网络。我们呼吁对视频进行审核,并批准了申请。因此,如果您已完成所有选项,请尝试使用此选项。
答案 9 :(得分:2)
您可以在以下网站查看您的API,您的API是否配置了iPV6!
答案 10 :(得分:0)
使用Facebook SDK时,我遇到了同样的应用拒绝。如果您使用Facebook SDK进行登录,则在结束会话时注销用户非常重要。否则,您将来会面临类似的应用拒绝。我已将下面的代码包含在内,以帮助那些可能遇到类似问题的人。
let loginManager = FBSDKLoginManager()
loginManager.logOut()
答案 11 :(得分:0)
我通过向他们发送视频来解决问题,显示我的应用在ipv6上工作。
答案 12 :(得分:0)
我的应用两次在应用商店中被拒绝。他们给使用OS 11.4的iPhone上的twitter登录提供了错误。我们遇到的主要问题是由于twitter的回调URL,而未在twitter的开发人员帐户上设置。当我在Twitter的开发人员帐户上设置回调URL时。它解决了我的问题。当我们没有在Twitter的开发者帐户上设置回调URL时,当设备具有Twitter应用时,Twitter登录成功。但如果设备上没有Twitter应用,则会显示禁止错误403。
因此,设置回调网址可以解决我的问题,并且可以接受应用。
谢谢