Required iPv6 compatibility - iOS app rejected by Apple-AFNetworking - ios

After June 1, I submit my ionic app to iTunes connect and I got the message from apple.
Apps are reviewed on an IPv6 network. Please ensure that your app supports IPv6 networks, as IPv6 compatibility is required.
I have used AFNetworking version 3.0 for API call.
and I am not using the hard coded IP Address in my app to call API. I have used http://www.xxxx.com/API/login.php
So now, what I have to change on mobile side and server side?
Please help me to find out the solution for the same.

Related

Apple App Store IPV6 Requirement

I am going to publish an app on Apple Store then I came to know about IPV6 rejection issue. My app only support for IPV4 and on this link I found that app should support IPV6.
So my question is that, Is it compulsory that app must support for both IPV4 & IPV6?
Sorry if looks as a foolish question but I am looking for a Apple link & more detail before getting rejected from Apple.
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

iOS App rejected by apple related to ipv6 connection

Apple rejected my app with the following message:
"We discovered one or more bugs in your app when reviewed on iPad running iOS 10.3.1 on Wi-Fi connected to an IPv6 network.
Specifically, an error was displayed when we tried to login.
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."
On my tests I ran the app on the ipv6 network they help you create with a local machine on ethernet, and what happens is that I can't access the server for request due to "no internet connection".
I also tested the address I'm throwing my requests to and it looks like it is not IPv6 ready.
Could it be that the server side needs to be IPv6 ready?
I'm using NSURLSession for the tasks and my devices are running the latest ios.
From what I read this sounds like an issue we faced. We are in the UK which has limited IPv6 support at an ISP level. Apple rejected our app because our server which handled calls from the app was IPv4.
We resolved this by getting some IPv6 hosting from a company in the US and directing the requests from the app to it, and then across to our code on our IPv4 network here.

Required iPv6 compatibility - rejected by Apple iOS app

I uploaded my app on itunes multiple times and received the following message:
(
We discovered one or more bugs in your app when reviewed on iPhone running iOS 10.2 on Wi-Fi connected to an IPv6 network.
Specifically, when we attempted to create a new account a loading indicator spun indefinitely.
)
Apps are reviewed on an IPv6 network. Please ensure that your app supports IPv6 networks, as IPv6 compatibility is required.
Notes: I have used AFNetworking version 3.1.0 for call web services(support IPV6) and Apple Reachability(also support IPV6) without using hard coded Ip.
My question: the changes must be done on mobile side or server side?
As far as my experience with IPv6 reaches, you're probably right. When you develop your app in Xcode using the latest SDK for iOS 10.2, you should be save with IPv6 compatibility on your app's side.
However, Unix (MacOS audios are a Unix derivative) takes the path or url from your app and will negotiate at the OS level with the other side you want to connect with. This usually runs over a DNS. So, your app and iOS will first request an IPv6 IP address from the DNS. When the DNS understands IPv6, which is not always guaranteed, but it usually does, it asks the other side for an IPv6 address. If the other side does not support IPv6, the operating system will request an IPv4 address and set up the connection.
Since Apple will hold you responsible for the entire chain of services delivered by your app, you must ensure the requested side also supports IPv6 via it is part of the your apps functionality.
Hope this helps.

Apple rejected our phonegap app for not having ipv6 support

We submitted cordova phonegap app to apple and it was rejected saying that our app does not support ipv6. This is the first time we are getting this error and not sure on exact steps for fixing this issue.
Our app is using amazon ec2 and we noticed that amazon ec2 is not supporting ipv6. So we want to know where do we need to fix this? In the amazon or inside the app?
If it is amazon, how we can fix it? we tried to fix amazon issue by adding ELB but it has not solved the problem yet.
We are using latest version of cordova and all libraries are latest version. Please let us know
This is not an issue related to your webservice/webserver.
Since this June, Apple expects Apps to run on IPV6 networks. Apple has started rejecting Apps which do no comply with this.
NSURLSession, NSURLConnection, AFNetworking 3.x+ all support IPV6
If you are using any other network libraries, please use below link to test IPV6 support
http://www.brianjcoleman.com/tutorial-how-to-test-your-app-for-ipv6-compatibility/
If you come across issues in making web requests when your App is running on an IPV6 network, you will have to update/replace your networking libraries to IPV6 supporting equivalents.
Once you are done testing your App with IPV6 support, you can re-submit it to the app store for approval.

Xamarin Form, iOS Supporting IPv6-only Networks

I've just submitted my app to Appstore and got this error:
At WWDC 2015 we announced the transition to IPv6-only network services
in iOS 9. Starting June 1, 2016 all apps submitted to the App Store
must support IPv6-only networking. Most apps will not require any
changes because IPv6 is already supported by NSURLSession and
CFNetwork APIs.
If your app uses IPv4-specific APIs or hard-coded IP addresses, you
will need to make some changes. Learn how to ensure compatibility by
reading Supporting IPv6 DNS64/NAT64 Networks and watch Your App and
Next Generation Network
I also searched about IPv6 in Xamarin and found same error at: https://forums.xamarin.com/discussion/66732/does-xamarin-support-ios-ipv6-only-networks
Anyone had experience about supporting IPv6 by using Xamarin, please advice.
Thanks
I've just found the solution, library Xam.Plugin.Connectivity does not support IPv6. I removed the library and get approved!

Resources