IPv6app store拒绝

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

该应用程序仅将httpsnetworking请求发送到api.metooapp.io,该请求已针对ipv6 [ 0 ]正确configuration,并在AWS上的Route53后面运行。 代码中没有硬编码的IP地址。

即使按照在拒绝通知中提供的链接[ 1 ]中的步骤创buildipv6networking,我也无法再现此问题。 看来我不是唯一遇到这个问题的人,要么[ 2 ]。

经过相当多的压力之后,我可以确认问题是我们的后端未正确configuration为IPv6。 显然,AWS不支持IPv6,也不支持通过Route53支持IPv6的DNS。 我最终将所有面向互联网的后端从AWS移开。

我想留下来,因为我认为可能会有其他人发现自己有类似的问题,因为人们开始提交更新通过IPv6的限制。 我发现用于testingserver / dns准备情况的最佳工具是: http : //ready.chair6.net/

请注意, 支持“仅IPv6networking”和“ IPv6与应用程序复审”链接可以帮助确定苹果拒绝的问题。 在这个特定的情况下,文章明确指出你可以设置DNS64 / NAT64testingnetworking,但是“这个testingnetworking与App Review使用的networking不完全一样”,这就是为什么一切都可以在testing环境中工作,应用程序被拒绝。

此外:

App Reviewnetworking就像服务提供商部署的networking一样支持IPv6到IPv6的连接。 因此,如果您的服务器支持IPv6,则您的应用程序将直接与它通话,而无需通过NAT64转换器。 这通常是一件好事,但是如果你的服务器声称支持IPv6,但是IPv6支持被破坏,它可能会让你失望。 例如,如果:DNS名称不正确,DNS正确,但服务器没有在IPv6上侦听,服务器正在侦听IPv6,但是当请求通过IPv6进入时失败

所以如果你的后端服务器支持IPv6,苹果testingnetworking将会使用它,而这种情况是错误的。

我将其添加为其他遇到同样问题的用户的参考和起点

我们遇到了同样的问题,结果我们已经为IPv6设置了一个AAAAlogging,因为我们实际上并没有IPv6支持(我们也使用Route53),所以一切都完成了。 删除AAAAlogging解决了这个问题。

我已经提交了关于testing文档与App Review正在使用的设置之间的差异的一个雷达 – 我们只能诊断它,因为我们的CTO在WWDC,能够连接到他们的networking,这不完全是一种情况我们可以定期复制。

我们遇到了同样的问题。我们的应用程序已经被拒绝服务于ipv6的原因。 但是我们已经在ipv6networking中testing过了,它被定义为APPLE的官方文档: https : //developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/ UID / TP40010220-CH213-SW1

我们的应用程序第一次被拒绝,我们设置了基于苹果文件的本地testing环境,默认情况下发现我们的curl lib太旧,没有启用ipv6。 所以我们build立最新的curl库,它工作。 但由于同样的原因,又被拒绝了。 我查了很多信息,发现有人有相同的经验,只是抱怨苹果审查员说你的应用程序在testing环境中运行良好,并要求他们提供工程师帮助,如果他们坚持有一些错误。 苹果审查小组在周末看到我们的投诉后批准了我们的应用程序。

据我所知有两个问题你需要检查。 你在你的应用程序中硬编码的IP地址? 您是否为您的服务器域设置了AAAAlogging以显示它支持ipv6,但是您的服务器不听ipv6。 如果是,只需从您的域名提供商网站中删除您的域名设置中的AAAAlogging。

我们遇到了类似的情况。 由于IPv6networking中的连接问题,我们的应用程序被拒绝。 另外我们的服务器正在使用AWS。

我对IPv6 DNS64 / NAT64进行了testing,没有发现任何问题,我们决定提交此拒绝的申诉。

我们解释说,我们的testing成功完成,我们正在使用AWS基础架构。

再过两天,该应用程序再次被审查和接受

可达性库必须支持IPv6networking设置。 所以使用这个Reachability类。

https://developer.apple.com/library/content/samplecode/Reachability/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007324

这是我6个月后第二次遇到这个问题。 以前是在使用AFNetworking的Objective-C项目中,我使用了这个解决scheme,并且一劳永逸。 阿拉莫菲尔也是如此。 伙计们这个解决scheme为我工作了2次,我发现这个问题是第一次在谷歌,所以我张贴的答案。

在工作区中searchAF_INET,并将其更改为AF_INET6。 如果你使用的话,我认为它必须在AFNetworking库或Alamofire库里面。 它在NetworkReachabilityManager类中。

我从下面的来源find了这个答案。

https://stackoverflow.com/a/38196337/4030971

编辑: – 6月24日 –

这帮了我很多次,但是这个问题也有一个奇怪的解决方法。 在我们最近的项目中,我们已经应用了这个解决scheme,但苹果拒绝了这个应用 然后,我们做了一个video,显示该应用程序运行良好,连接到Mac上创build的NAT64networking从WiFi共享选项。 我们呼吁审查与video,他们批准了申请。 所以,如果你已经完成了所有的select,也可以试试这个。

我已经执行了testingIPv6 DNS64/NAT64没有任何问题苹果文件规定的

但是,我们无法重现这个问题(崩溃)。 我们成功地在我们的设备上安装应用程序而不会崩溃。

  • 我们拍摄了这个总体testing过程的video(包括显示连通性,从testflight下载,NAT64networking连接,应用程序操作)
  • 并呼吁拒绝与video文件

最后 ,app store批准我的应用程序

当使用Facebook SDK时,我遇到了同样的应用程序拒绝。 如果您使用Facebook SDK进行login,在结束会话时注销用户非常重要。 否则,将来您将面临类似的应用程序拒绝。 我已经包含了下面的代码来帮助那些可能遇到类似问题的人。

 let loginManager = FBSDKLoginManager() loginManager.logOut()