App由于IPV6问题被App Store拒绝

时间:2017-05-05 06:02:36

标签: ios xcode swift3 app-store ipv6

由于IPV6问题,我的应用被app store拒绝。以下是App Store的信息

  
      
  1. 1性能:应用完整性指南2.1 - 性能
  2.         

    您的应用在连接到IPv6的运行iOS 10.3.1的iPad上崩溃了   网络当我们:

         

    输入提供的凭据。该应用程序加载了一秒钟然后   坠毁。重新启动应用程序时,我们似乎已经平静地“登录”了   但应用程序加载片刻并再次崩溃。

         

    使用您的应用时发生这种情况:

         
        
    • 在Wi-Fi上
    •   
         

    我们附加了详细的崩溃日志,以帮助解决此问题。

         

    后续步骤

         

    要解决此问题,请修改您的应用并在设备上进行测试   连接到IPv6网络(所有应用程序必须支持IPv6)时   确保它按预期运行。

         

    资源

         

    有关如何表示和阅读崩溃日志的信息,请   查看技术说明TN2151了解和分析应用程序崩溃   报告。

         

    有关支持IPv6网络的信息,请查看   支持IPv6 DNS64 / NAT64网络和关于网络。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

我在iOS中遇到了这个问题。比我更改我的aptblility类互联网连接方法和我的应用程序批准。如果您想在系统中制作Ipv6网络,请检查

https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html

目标c

+ (instancetype)reachabilityForInternetConnection
{
  struct sockaddr_in6 zeroAddress;
  bzero(&zeroAddress, sizeof(zeroAddress));
  zeroAddress.sin6_len = sizeof(zeroAddress);
  zeroAddress.sin6_family = AF_INET6;
  return [self reachabilityWithAddress: (const struct sockaddr *)  &zeroAddress];
}

Swift 3

 func ipv6Reachability() -> SCNetworkReachability? 
{
var zeroAddress = sockaddr_in6()
 zeroAddress.sin6_len = UInt8(MemoryLayout<sockaddr_in>.size)
   zeroAddress.sin6_family = sa_family_t(AF_INET6)

   return withUnsafePointer(to: &zeroAddress, {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
    SCNetworkReachabilityCreateWithAddress(nil, $0)
 }
 })
 }

答案 1 :(得分:0)

是。我也经常多次面对这个问题。 Apple现在只支持与IPv6兼容的应用程序。

首先,我根据他们的描述测试了我的应用程序。我在IPv6上进行了测试,但我没有得到任何错误。所以在连接到IPv6之后首先完成调试。如果你觉得,它的工作正常就可以了。

我通过不同的网站发现了我网络的IPVersion。我在移动设备上截取了我连接的网络的截图,并将这些屏幕截图发送给苹果进行审核(说它是连接到IPv6的证据)。

以下是帮助您找出所使用版本的几个网站。

Google IPv6 test

现在已被接受

答案 2 :(得分:0)

问题是我使用了一些代码来检查应用是否连接到互联网。这些代码仅支持IPV4而不支持IPV6。所以我只是将这些代码更新为支持IPV6。这是代码:

旧代码:

var zeroAddress = sockaddr_in()
zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)

新代码:

var zeroAddress = sockaddr_in6()
zeroAddress.sin6_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
zeroAddress.sin6_family = sa_family_t(AF_INET6)