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