iOS App rejected by apple related to ipv6 connection - ios

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.

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

Please run your app on a device while connected to an IPv6 network (all apps must support IPv6) to identify the issue(s)

it might sound stupid but i have a problem: iTunes Connect rejected my app, claiming "We discovered one or more bugs in your app when reviewed on iPad running iOS 10.2 on Wi-Fi connected to an IPv6 network.". and they want me to: "Please run your app on a device while connected to an IPv6 network (all apps must support IPv6) to identify the issue(s), then revise and resubmit your app for review.".
Now, I understand that since 6/16 each app should supports IPv6. Because an application is just a software, i understand that they mean that each URL that I enter from my app should be accessible through IPv6. The weird part is that when i'm trying to reach sites which only available at IPv6 (like http://test-ipv6.com/, http://ds.testmyipv6.com/) i can't reach them, not from Android device, iOs devices, or from any mac. It's hard to believe that different ISP-s doesn't provide IPv6 support.
What am i missing here ?
Did any of you had that problem ?
Anything similar ?
It doesn't mean that servers need to be accessible through IPv6 (although it is highly recommended), it means that your application shouldn't care whether the server is IPv4 or IPv6. Some networks use NAT64 and DNS64 and will give your application IPv6 addresses even for servers that are only reachable over IPv4.
Apple's requirement is that your application must work in such situations.
This has been asked many times. Please look at previous answers. Here are some references:
Is Apple iOS defaulting to IPv6-only, on an app-by-app basis, in the real world?
Can't reproduce (IPv6?) connection issue that App Store review team is having

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.

App store Rejects App for IPV6 network support on iOs 10

I got an app rejection mail from apple which is below,
We discovered one or more bugs in your app when reviewed on iPad and iPhone running iOS 10.0.2 on Wi-Fi connected to an IPv6 network.
Specifically, app remains on splash screen upon launch.
Based on their request i have created the NAT64 network on my Mac and shared that internet for the iPhone 5S device 10.0.2 os version , App was working fine,
But apple says its not working with IPv6
Can anyone confirm that do i need to check anything else?
Related question
Environments:
Appcelerator Studio Ti SDK 5.1.0 GA
XCode Version 6.3
Thanks in advance
Just Read the mail you got from apple people. Answer will be there only.
Use wireshark to know what exactly your network doing.
Also to understand the problem better use wireshark for analyzing what is going on - create an network as outlined in that session and see what happens on the wifi port
https://developer.apple.com/videos/play/wwdc2015/719/
for more info check #Sean Answer
After quite a bit of stress, I can confirm that the issue was a problem with our backend not being correctly configured for IPv6. Apparently, AWS doesn't support IPv6, nor IPv6-only DNS through Route53. I ended up moving all the internet facing bits of the backend away from AWS for the time being. I wanted to leave this up because I think there are probably going to be others who find themselves with similar problems as people start submitting updates past the IPv6-only restriction. The best tool I found for testing server/dns readiness has been: http://ready.chair6.net/
Request your hosting provider to assign your server IPv6 as well and they will not charge you for this. This will resolve your IPv6 issues.
In my case I contacted the hosting provider about this issue and they said IPv6 is not assigned to my server I requested them and asked for the cost, they said it is free of cost and will assign it now. I think hosting companies have to assign IPv6 to all servers but they are assigning it on priority bases for those who are facing this issue.
So better you contact hosting provider for your IPv6 assignment.

App Rejected with iOS IPv6 network

Yesterday, I submitted my app for review, but I got this message from Apple:
We discovered one or more bugs in your app when reviewed on iPad iPhone running iOS 9.3.2 on Wi-Fi connected to an IPv6 network.
Specifically, upon review we have found the application still experiences a loading issue and unable to review the application content.
My app uses ionic framework, how can I fix this problem?
I already used domain to access my server, but this problem still exists.
Yes. According to apple's policy , your application must supports IPV6. so, please check your application supports IPV6. Supporting IPv6 in iOS 9
To test, if your application supports IPV6 or not please check this ,
Supporting IPv6 DNS64/NAT64 Networks
To check with creating follow this steps , which indicate on apple's page .
To set up a local IPv6 Wi-Fi network using your Mac
1) Make sure your Mac is connected to the Internet(with ethernet), but not through Wi-Fi.
2) Launch System Preferences from your Dock, LaunchPad, or the Apple menu.
3) Press the Option key and click Sharing. Don’t release the Option key yet. (don't forget to press option key)
4)Select Internet Sharing in the list of sharing services.
5)Release the Option key.
6)Select the Create NAT64 Network checkbox.
7)Choose the network interface that provides your Internet connection, such as Thunderbolt Ethernet or Only Ethernet.
8)Select the Wi-Fi checkbox.
9)Click Wi-Fi Options, and configure the network name and security options for your network.
10) Select the Internet Sharing checkbox to enable your local network.
11)When prompted to confirm you want to begin sharing, click Start
12) Now your mac mini is working as a hotspot and useing IPv6 NAT64 network
(looks like above image when hotspot created)
Now connect your iphone with your mac mini's hotspot. and Test your Application it's working properly or not.
I hope this answer is helpful you.
Edit :- Don't forget to add below frameworks.
1) WebKit
2) CFNetwork
You will find all the information on this link related to ipv6 policy. Supporting IPv6 DNS64/NAT64 Networks
We also faced the same issue.
Just registered your website with any CDN like cloudFlare and your app will be approved next time no need to shift the whole site to any other server. This is the easiest way to get approval from app store.
I think Apple has something wrong with this error!
I have an app (ionic app) rejected 3 times (during Nov 2016) for the same error and lastly accepted without making any change related to IPv6!
You may need to check your app for startup errors if you think that you have nothing to do with IPv6.
By the way: I did not check IPv6 compatibility on my app, and even more the app - in its inner views - has a connection to a webpage that hosted on a shared host with no IPv6 support!!
Please note that sometimes the mobile app works in the test environment but not in the Apple own test environment. Following this and this link can be very helpful in determining what's the problem with apple rejections.
It is clearly stated that the test environment is not exactly the same

Resources