2016-06-27 11 views
0

AppStoreで自分のアプリを送信しました。Soap NSURLConnectionの場合、IPv6互換性が必要なため、お使いのアプリがIPv6ネットワークをサポートしていることを確認してください。

Hello, 

     Thank you for providing this information. Upon further review, we were still unable to login to the app. 

     Please note that apps are reviewed on an IPv6 network. Please ensure that your app supports IPv6 networks, as IPv6 compatibility is required. 

     For information about supporting IPv6 Networks, refer to Supporting iPv6 DNS64/NAT64 Networks. 

     For a networking overview, please see About Networking. 

     Best regards, 

     App Store Review 

私はそれを使用するSOAPエンベロープのサービスを使用していますが、ここで

は私のコード

@property(retain,nonatomic)NSString *xmlString; 

@property(nonatomic,retain)NSMutableData *webResponseData; 


-(void)method_GetUpcomingLotteries 
{ 

    NSString *soapMessage = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" 
          "<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:ns1=\"urn:Lottery.Intf-ILottery\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:enc=\"http://www.w3.org/2003/05/soap-encoding\">\n" 
          "<env:Body>\n" 
          "<ns1:GetUpcomingLotteries env:encodingStyle=\"http://www.w3.org/2003/05/soap-encoding\">\n" 
          "<EntityID xsi:type=\"xsd:int\">2</EntityID>\n" 
          "<Password xsi:type=\"xsd:string\">[email protected]</Password>\n" 
          "<SortBy xsi:type=\"xsd:int\">0</SortBy>\n" 
          "<limit xsi:type=\"xsd:int\">0</limit>\n" 
          "</ns1:GetUpcomingLotteries>\n" 
          "</env:Body>\n" 
          "</env:Envelope>"]; 


    NSURL *sRequestURL = [NSURL URLWithString:@"http://isapi.mekashron.com/soapclient/soapclient.php?"]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:sRequestURL]; 
    NSString *sMessageLength = [NSString stringWithFormat:@"%d", [soapMessage length]]; 

    [request addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
    [request addValue: @"urn:Lottery.Intf-ILottery/GetUpcomingLotteries" forHTTPHeaderField:@"SOAPAction"]; 
    [request addValue: sMessageLength forHTTPHeaderField:@"Content-Length"]; 

    [request setHTTPMethod:@"POST"]; 



    [request setHTTPBody:[soapMessage dataUsingEncoding:NSUTF8StringEncoding]]; 

    NSLog(@"soapMessage===\n %@",soapMessage); 

    NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

    if(theConnection) { 
     NSLog(@"hiii"); 
     self.webResponseData = [NSMutableData data]; 
    }else { 
     NSLog(@"Some error occurred in Connection"); 

    } 
} 



- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    NSLog(@"Received Bytes from server: %lu", (unsigned long)[self.webResponseData length]); 

    NSString * strXml = [[NSString alloc] initWithBytes: [self.webResponseData mutableBytes] length:[self.webResponseData length] encoding:NSUTF8StringEncoding]; 

    NSLog(@"---- %@" ,strXml); 



} 

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 

    [self.webResponseData setLength:0]; 
} 

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    [self.webResponseData appendData:data]; 
} 

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { 
    NSLog(@"Some error in your Connection. Please try again."); 


} 
ある

私の質問:

1)私が教えてください私の方法を変更する必要がありますか、またはAPIをIPv4からIPv6に移行するためにサーバー側を変更する必要がありますか?

2)コードIPv6がWWDC 2015でNSURLConnection

+0

[アプリはIPv6ネットワーク上で見直される可能性があります。あなたのアプリがIPv6ネットワークをサポートしていることを確認してください。IPv6の互換性が必要です。](http://stackoverflow.com/questions/37799925/apps-are-reviewed-on-an-ipv6-network-please-ensure-that-your- app-supports-ipv6) – halfer

+0

[その他の可能性のある重複](https://stackoverflow.com/search?q=apps+are+reviewed+on+an+IPv6+network) – halfer

+0

私はIPv6で完全にfait_ではありませんが、isapi.mekashron.comのDNSシステムがIPv6アドレスに追加で解決するかどうかが関係していると思います。おそらくあなたはそれを見ることができますか? – halfer

答えて

2

を交換その作業ios9下SOAPメソッドを使用するための、リンゴはリンゴを必須にした2016年6月1日から今のiOS 9におけるIPv6のみのネットワークサービスへの移行を発表しました。アプリはiPV6をサポートする必要があります。

開発者がappleによって提供されるNSURLSessionやCFNetwork APIのような標準的なネットワーキングAPIを使用する場合、問題は発生しません。それ以外の場合は、コードをIPV6をサポートするAPIに移動する必要があります。

AFNetworkingなどの標準ネットワークライブラリを使用する場合は、これによるとsite AFNetworking 3.0はIPV6をサポートしています。

Appleにはhow to test IPV6 supportに関するドキュメントがあります。

+0

私の石鹸APIを使って何をチェックしてください?私はipv6にサーバー側のAPIを変更する必要がありますか? – iphonemaclover

+1

これらはサーバーサイトの変更を強制するものではなく、クライアント側のみです。彼らのドキュメンテーションNSURLConnectionによると、それはCFNetwork APIに該当するので、それはうまくいくはずです。しかし、iOS 9ではNSURLConnectionのAPIのほとんどが推奨されていないため、NSURLSessionの使用を推奨しているかもしれません。しかし、NSURLConnectionはドキュメントに従って問題を与えるべきではありません。 「10.0.1.121」のようなハードコードされたIPアドレスを使用した場合は、DNSを使用してください。今は、ドキュメントごとにIPV6サポートをテストし、エラーログが見つかるかどうかを確認することをお勧めします。 – skJosh

+0

ios9の下でSOAPを使用してIpV6のための@コードしてください? – iphonemaclover

関連する問題