2016-09-06 71 views
3

我收到了我的应用程序被拒绝前几天由于以下原因:

我们发现在你的应用程序的一个或更多的错误时,iPad和 iPhone运行iOS 9.3.5审查在连接到IPv6网络的Wi-Fi上。

具体而言,我们发现登录时产生了一条错误消息。 我们附上了截图供您参考。

下一步

请运行在设备上的应用程序,同时连接到IPv6网络 (所有的应用程序必须支持IPv6),以确定问题的(一个或多个),然后修改并重新提交 您的应用程序进行审核。

如果我们误解了您应用的预期行为,请回复 此消息在Resolution Center中,以提供有关这些 功能如何工作的信息。

对于新的应用程序,从 设备上卸载您应用程序的所有先前版本,然后安装并按照步骤重现问题。 如需更新,请安装新版本作为先前的 版本的更新,然后按照步骤重现问题。

资源

有关支持IPv6网络的信息,请参阅 支持IPv6 DNS64/NAT64网络和关于网络

如果你有困难重现报告的问题,请尝试 测试中所描述的工作流程技术Q & A QA1764:如何 重现针对App Store提交报告的错误。

我已经设置了两个IPv6网络,其中一个在时间胶囊中,另一个从我的MacBook Pro共享。从Time Capsule的网络(谁是完整的IPv6网络),该应用程序正常工作。从MacBook Pro共享网络中,我收到两个结果...当设备连接到此IPv6网络并且只配置了DNS时,该应用程序可以正常工作,但是当它接收到DNS和一个格式为169.254.XX的IP时,应用程序会崩溃连接到服务器。

问题是,$ http请求应答由错误端而不是成功端进行。我用Ionic $ http和cordova-http插件(https://github.com/Switch168/cordova-HTTP#110)尝试过,结果是一样的。我不知道发生了什么,因为我与AngularJS有一个Cordova(只有Cordova,不是Ionic)项目,它不会失败。那么,Ionic $ http和AngularJS $ http有什么区别?我不明白有什么区别。请参阅this image here

$ HTTP请求的例子(使用离子$ http和科尔多瓦-HTTP插件):

callWs: function(ws, method, data){ 
    var defferer = $q.defer(); 

    if (device.platform == 'Android' || device.platform == 'iOS'){ 

    $window.CordovaHttpPlugin.postJson(url_request, 
     data_sent, 
     {"cache-control": "no-cache, private, no-store, must-revalidate", 
     "Authorization": basic_auth, 
     "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" 
     }, 
    function(res) { 
     defferer.resolve(res.data); 
    }, function(error) { 
     defferer.reject(error); 
    }); 

    } else { 

    $http({ 
     url: url_request, 
     method: 'POST', 
     withCredentials: true, 
     timeout: HTTPTIMEOUT, 
     headers: { 
      'cache-control': 'no-cache, private, no-store, must-revalidate', 
      'Authorization': basic_auth, 
      'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' 
     }, 
     dataType : 'json', 
     data: data_sent 
    }).then(function (res) { 
     defferer.resolve(res.data); 
    }, function (error) { 
     defferer.reject(error); 
    }); 

    } 

    return defferer.promise; 

} 

回答

4

考虑它的几个月,因为你张贴了这个,我希望你已经解决了这个问题。我正在回答这个问题,就像我在寻找解决方案时所做的一样。

此问题主要是由于服务器中的问题引起的。您的应用程序需要使用ipv6才能让Apple批准您的应用程序,这一点很重要。 (见第一条评论)有一个​​方便的工具,帮助我了解是否属于这种情况。

这是http://ipv6-test.com/validate.php

如果是这样的问题,解决方法如下:

  1. 添加IPv6地址到Web服务器。
  2. 为您的网站添加AAAA记录。
  3. 为裸露的域添加AAAA记录。
  4. 确保您的DNS服务器具有IPv6地址。
  5. 如有必要,为名称服务器添加IPv6胶水。
  6. 为传入邮件服务器添加IPv6地址。
  7. 为您的邮件服务器的IPv6地址添加反向DNS。
  8. 检查您的SPF记录。

如果您不熟悉任何的上述步骤,请this link.

+2

“_IT重要的,你的服务器是通过IPv6可达苹果批准您app._”这是不正确的。您的应用程序需要使用IPv6,但服务器只能使用IPv4。 Apple测试网络使用NAT64来促进这一点。许多人在没有IPv6服务器的情况下批准了他们的应用程序。我会主张每个人都将他们的服务器转换为IPv6,但这并不是获得应用程序批准的要求。 –

+0

根据评论更新了答案。 – esafwan

+0

编辑并没有真正解决答案。它仍然是使您的服务器可以通过IPv6访问,而不是让您的应用程序在IPv6上工作。 –

相关问题