required iPv6 compatibility - iOS app rejected by apple
Actually i am calling API using AFNetworking Library.
I have just replace the AFNetworkReachabilityManager classes from Github with my existing classes. And apple doesn't have problem any more.
And my app works now.
Apple App Store IPV6 Requirement
You don't need to worry about IPv6 support, if you've not set hard-core IPv4 IP address in your web server/service url connection.
This Apple document will help you: Supporting IPv6-only Networks
All apps submitted to the App Store must support IPv6-only networking. A majority of apps will not require any changes as IPv6 is already supported by NSURLSession and CFNetwork APIs. However, if your app utilizes IPv4-specific APIs or hard-coded IP addresses, you will need to make changes. Be sure to test for IPv6 compatibility before submitting your app to the App Store for review.
However, Apple guides in Testing your app in an IPv6-only environment:
You should test your app on an IPv6-only network. If you don’t have one, you can set up a test network by following the instructions in Test for IPv6 DNS64/NAT64 Compatibility Regularly.
Following SO reference, faced similar problem, may guide you:
- IPv6 App Store Rejection
App was rejected by App Store because of IPV6 issues
I faced this problem in iOS. Than I change my reachblility class internet connection method and my app approved. If You want to make Ipv6 network in your system than please check
https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html
Objective c
+ (instancetype)reachabilityForInternetConnection
{
struct sockaddr_in6 zeroAddress;
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin6_len = sizeof(zeroAddress);
zeroAddress.sin6_family = AF_INET6;
return [self reachabilityWithAddress: (const struct sockaddr *) &zeroAddress];
}
Swift 3
func ipv6Reachability() -> SCNetworkReachability?
{
var zeroAddress = sockaddr_in6()
zeroAddress.sin6_len = UInt8(MemoryLayout.size)
zeroAddress.sin6_family = sa_family_t(AF_INET6)
return withUnsafePointer(to: &zeroAddress, {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {
SCNetworkReachabilityCreateWithAddress(nil, $0)
}
})
}
Related Topics
Why Does Apple Recommend to Use Dispatch_Once for Implementing the Singleton Pattern Under Arc
Silent Push Notification in iOS 7 Does Not Work
How to Create a Circular Progress Indicator for a Count Down Timer
Update Restkit 'Lcl_Rk.H' File Not Found in Rklog.H
Best Way to Cache Images on iOS App
Generate a Random Float Between 0 and 1
Location Services Not Working in iOS 11
Cannot Change Search Bar Background Color
Add Bottom Border Line to UI Textfield View in Swiftui/Swift/Objective-C/Xamarin
How to Add a Toolbar Above the Keyboard
Changing the Development Language in Xcode
What Is the Meaning of the "No Index Path for Table Cell Being Reused" Message in iOS 6/7
Record and Play Audio Simultaneously
How to Determine Which Apps Are Background and Which App Is Foreground on iOS by Application Id