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
Related
Apple requires that all apps in the app store to work in an all IPv6 network (no IPv4 network) according to this link
https://developer.apple.com/support/ipv6/
I was sniffing traffic from a few apps on the IOS and I checked to see if their APIs support IPv6 and it turns out that they don't. I checked their URLs on this site
http://ipv6-test.com/validate.php
I'm a bit puzzled about this. Aren't all apps in the Apple App store supposed to support IPv6?
One of the apps that I tested was the Textme app. Here is one of the URLs that they use within their app
https://api.textme-app.com/api/auth-token/
and by the looks of it, that domain does not support IPv6
The app needs to work in an IPv6-only environment with NAT64. That doesn't require the server to support IPv6, it just requires the app to not be bothered if the network pretends that the is reachable over IPv6-only.
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
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.
Apple's iOS App Store review process now includes a requirement that apps should work on IPv6 only networks.
With that in mind, is Apple defaulting to IPv6-only, on an app-by-app basis, for iPhones connected over mobile networks in the real world (not just in review)?
I.e. is Apple now forcing the move to IPv6-only in the real world for apps that pass it's IPv6 review?
(Any answer to the above question(s) would be great by itself, but for those with in-depth knowledge, a follow-up: Would UDP packets be properly routed to/from an IPv6 mobile device to an IPv4 server via NAT64 on the cellular network? It's actually this concern that leads me to the original question, I'm wondering if TURN clients are using TCP instead of UDP because UDP is not making it through IPv6->NAT64->IPv4).
Apple is not forcing IPv6 only support, but they have to adapt to what's happening in the world. More and more mobile networks deploy NAT64 and if apps on Apple would not work on those networks then that could give Apple a bad reputation. Therefore they require that apps support such a network.
There are still apps in the app store that have been uploaded before the IPv6 requirement was in place so they may be broken. At the moment those apps are allowed to stay in the app store, but in the future they might be kicked out. Last time I asked Apple hadn't decided over that yet.
UDP should work through NAT64, but it will be implementation dependent how long ports will remain open etc. That will depend on the network, not on Apple.
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!