ios IPV6被拒绝的解决方案


We discovered one or more bugs in your app when reviewed on iPhone running iOS 10.3 on Wi-Fi connected to an IPv6 network.

Specifically, the app did not respond when we tried to use IAP to pay for memberships and recharge.

Please see attached screenshots for details.

Next Steps

To resolve this issue, please run your app on a device while connected to an IPv6 network (all apps must support IPv6) to identify any issues, then revise and resubmit your app for review.

If we misunderstood the intended behavior of your app, please reply to this message in Resolution Center to provide information on how these features were intended to work.



解决方案

App
1.manager.responseSerializer.acceptableContentTypes = nil;2. AFNetworkReachabilityManager.m ipv6 AF_INET6 iOS9 AF_INET6

+ (instancetype)manager{

double version = [[UIDevice currentDevice].systemVersion doubleValue];

if (version >= 9.0f){

struct sockaddr_in6 address;bzero(&address, sizeof(address));address.sin6_len = sizeof(address);address.sin6_family = AF_INET6;
return [self managerForAddress:&address];

}else{

#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;

#else
struct sockaddr_in address;bzero(&address, sizeof(address));address.sin_len = sizeof(address);address.sin_family = AF_INET;

#endif
return [self managerForAddress:&address];

}}

3. AFNetwork 3.0

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manager.responseSerializer.acceptableContentTypes = nil;//[NSSet setWithObject:@"text/plain"];

manager.securityPolicy = [AFSecurityPolicy defaultPolicy];manager.securityPolicy.allowInvalidCertificates = YES;// https manager.securityPolicy.validatesDomainName = NO;//




你可能感兴趣的:(ios IPV6被拒绝的解决方案)