由于以下原因,我几天前收到了我的应用被拒绝:
我们在iPad上查看了您应用中的一个或多个错误 在连接到IPv6网络的Wi-Fi上运行iOS 9.3.5的iPhone。
具体来说,我们发现登录时会产生错误消息。 我们附上了截图供您参考。
后续步骤
请在连接到IPv6网络时在设备上运行您的应用 (所有应用程序必须支持IPv6)识别问题,然后修改和 重新提交您的应用以供审核。
如果我们误解了您应用的预期行为,请回复 此消息在解决方案中心提供有关这些消息的信息 功能旨在发挥作用。
对于新应用,请从a卸载所有以前版本的应用 设备,然后安装并按照步骤重现问题。 对于更新,请将新版本安装为上一版本的更新 版本,然后按照步骤重现问题。
资源
有关支持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请求示例(使用Ionic $ http和cordova-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;
}
答案 0 :(得分:4)
考虑到你发布这几个月后,我希望你已经解决了这个问题。我正在回答这个问题,就像我在搜索解决方案时所做的那样。
此问题主要是由于服务器中的问题引起的。重要的是,您的应用程序需要在ipv6上工作,Apple才能批准您的应用程序。 (见第一条评论)有一个方便的工具,帮助我找出是否是这种情况。
是http://ipv6-test.com/validate.php
如果出现问题,解决方法如下:
如果您不熟悉上述任何步骤,请查看this link.