为什么Apple向我发送消息说我的应用程序不支持Ipv6?

时间:2017-02-21 02:31:28

标签: ios app-store afnetworking ipv6

我的申请被拒绝,并提供以下信息:

  

发件人Apple
  1. 5安全:开发者信息
  2. 1性能:APP完整性
  安全 - 1.5

     

您应用的元数据http://hxsq.luminginfo.cn/中指定的支持网址未正确导航到预定目的地。

     

具体而言,您的支持网址显示“无法访问此网站”错误消息。

     

后续步骤

     

请修改您应用的支持网址,以确保其将用户引导至包含支持信息的网页。

     

表现 - 2.1

     

我们在连接到IPv6网络的Wi-Fi上运行iOS 10.2.1的iPhone和iPad上查看了应用中的一个或多个错误。

     

具体来说,使用提供的模拟账户登录时,您的应用显示连接错误。

     

有关详细信息,请参阅随附的屏幕截图。

     

后续步骤

     

请在连接到IPv6网络(所有应用必须支持IPv6)的设备上运行您的应用以识别任何问题,然后修改并重新提交您的应用以供审核。

     

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

     

对于新应用,请从设备卸载所有以前版本的应用,然后安装并按照步骤重现该问题。有关更新,请将新版本安装为先前版本的更新,然后按照步骤重现该问题。

     

资源

     

有关支持IPv6网络的信息,请参阅支持IPv6 DNS64 / NAT64网络和关于网络。   随着两个跟随图像:

http://a1198.phobos.apple.com/us/r30/Purple122/v4/60/8b/eb/608bebae-1c3b-cc93-2a01-9f512965f622/attachment-3951093649653869315Screenshot-0217-073348.png?downloadKey3=1487836993_30f3e33d7be2d3ba3c3e89d7e3393952

http://a1225.phobos.apple.com/us/r30/Purple111/v4/58/78/7a/58787a76-b8a2-8016-e5fe-412c7fcaf8dc/attachment-8366771332257964417Screenshot-0217-073415.png?downloadKey3=1487836993_592f44ae84cf1f391301263be58175b6

1.首先,我不明白这个问题1.5

2.其次,我的申请是使用AFNetworking 3.1.0,以及swift-oc混合项目。

enter image description here enter image description here

我的网络Util就是这样,其中一个方法就是列表:

#import "Mysevers.h"
#import "AFNetworking.h"
#import "HUD.h"

@implementation Mysevers

+(void)AFPOSTWithHud:(BOOL)hud andAddressname:(NSString*)addressName parmas:(NSDictionary*)parmas RequestSuccess:(void(^)(id result))success failBlcok:(void(^)(void))failBlcok
{
    if (hud) {
        [HUD addHUD];
    }
    AFHTTPSessionManager *requestManager = [AFHTTPSessionManager manager];

    NSString *urlStr = [NSString stringWithFormat:@"%@%@",BASE_URL,addressName];
    NSLog(@"%@",urlStr);


    [requestManager POST:urlStr parameters:parmas progress:^(NSProgress * _Nonnull uploadProgress) {

    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        if (hud) {
            [HUD removeHUD];
        }
        success(responseObject);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

        if (error != nil) {
            NSLog(@"error==%@",[error localizedDescription]);
            if (hud) {
                [HUD removeHUD];
            }
            failBlcok();
        }

        return ;
    }];

}

注意

我的BASE_URL是:

#define BASE_URL @" https://hxsq.luminginfo.cn:8043/app/"

附加-1

我已经测试了我的本地ipv6条件,它可以登录。

DNS是ipv6&#39。

我的应用程序也可以登录,所以我感到不确定,我的应用程序是支持ipv6!但是苹果发给我ipv6问题,唯一值得怀疑的就是我在app中的url(hxsq.luminginfo.cn)无法访问外国,比如美国。

5 个答案:

答案 0 :(得分:2)

它表示IPv6不支持您的支持网址。因此,它实际上可能与您的应用内网络代码无关。我只是尝试在浏览器中加载该URL,但也失败了。 您必须拥有有效的支持网址。

如果您确认您的应用内网络存在问题,则应该查看Eskimo的{​​{1}},他是Apple的工程师。具体而言,您应该针对IPv6网络进行测试,您可以使用this post进行设置。如果您已完成核对清单并验证IPv6在本地适用,则应回复应用程序审核并要求他们再次尝试。几周前我们遇到了同样的问题。

答案 1 :(得分:0)

安全 - 1.5:在我看来,至少支持网址(http://hxsq.luminginfo.cn/)应该导航用户下载您的应用程序。您的网址只是一个登录页面,他们可能会看到"无法访问此网站"查看应用时出现错误消息。

性能 - 2.1:您应该在仅IPv6版本中测试您的应用。官方网站:https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html

您只需阅读部分"定期测试IPv6 DNS64 / NAT64兼容性"。

答案 2 :(得分:0)

之前我也遇到过这个问题,通过我的测试,可能会遇到三个条件: 1.应用程序必须支持https并在Ipv6中运行。 2. BaseUrl不应该是ip url(如“122.223.1.1”),它必须是公共域名。 3.应用程序需要使用合法的https证书。

答案 3 :(得分:0)

最后,我发现我们的网络服务器在美国不可用,但在中国可用,我在网络上测试了ipv6,支持ipv6。

但我将我的服务器页面发送给美国朋友,他们说它在美国不可用,所以我的服务器在美国不可用。

因此,这是来自Apple审核小组的错误信息 他们可以在Ipv6网络中默认验证我们的应用程序,无论服务器网络是否可用。

我的问题是由:

引起的

我使用qcloud,(这是腾讯下属云服务器)。 起初我们的后端java同事只设置了第二条记录,指向Inland网络,外部无法访问我们的服务器。然后我添加第一条记录,指向Foreign,所以在美国现在可以访问服务器。

enter image description here

然后我将我的应用程序发送到Itunes Connect进行审核,成功。

答案 4 :(得分:0)

我想我找到了解决方案。主要问题是Cocoapods将Pod项目的“部署目标”设置为“IOS 7.0”。所以这使得“AFNetworkReachabilityManager.m”类使用新的ipv6块的旧“ipv4”代码instad,因为“if语句”属于错误的一面。

“__IPHONE_OS_VERSION_MIN_REQUIRED”语句返回“7000”,因为cocoapods部署目标设置为“7.0”,而不是使用与主项目相同的部署目标。

+ (instancetype)manager
{
    NSLog(@"min iphoneos: %i - %i",__IPHONE_OS_VERSION_MIN_REQUIRED,__IPHONE_OS_VERSION_MIN_REQUIRED);
#if (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000) || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
    struct sockaddr_in6 address;
    bzero(&address, sizeof(address));
    address.sin6_len = sizeof(address);
    address.sin6_family = AF_INET6;
    NSLog(@"IPV6 Block");
#else
    struct sockaddr_in address;
    bzero(&address, sizeof(address));
    address.sin_len = sizeof(address);
    address.sin_family = AF_INET;
    NSLog(@"IPV4 Block");
#endif
    return [self managerForAddress:&address];
}