App Rejected with iOS IPv6 network - ios

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

Related

Not able to connect to apple tv !! "Making apple tv ready for development" dialog shown

I'm trying to connect apple tv with my xcode to debug my app. But I'm getting below dialog and it will never go. So I tried following steps to fix but no use.
Waited for 10 mins and checked but still the same.
I restarted/reset apple tv and checked but no use.
Tried with different versions of xcode but no use.
Tried using wifi, mobile hotspot with different networks.
Some times I will get this dialog and it will never go.
If I try to run app in this state then I will get this alert in xcode
So I'm not understanding the why its behaving like this. And how to fix this issue ?
Wireless Debugging on Apple TV
Dive has some great recommendations about using Apple TV with your machine, connected via Ethernet. So far this is also my preferred way to connect, develop and deploy to Apple TV, however debugging on Wifi isn't the best experience.
Here are a few things you could try.
Remove current pairing by using Device and Simulator window.
Try downloading Apple Configurator 2 and use that to first pair your Apple TV to your machine. This is great tool to ensure you can connect to your iOS/tvOS devices for some super user type setup. ( Main Menu -> Paired Devices)
For this to work you have to be on a specific screen on your Apple TV.
Settings -> Remote and Devices -> Remote App and Devices ( This uses multipeer connectivity)
If you are successful pairing your TV using apple configurator then it's a good sign as you can rule our networking issues with your Wifi.
Try pairing with Xcode after it's paired with your machine in the step above. The dialog window you see above is expected and takes some time ( longer in some cases) but should eventually complete.
If step 3 wasn't a success, unpair from Xcode and Apple Configurator ( if they show as connected but not aren't really paired), restart your machine and Apple TV and start the same steps again.
Lan Set up :
You can connect to your Apple TV via a switch or usually Modem/Routers have inbuilt switch ( extra ethernet ports).
Try the same steps and you should be able to pair with Xcode.
Troubleshooting: Try using Console app on your machine if you still can not figure out the root cause and this should help you debug the pairing issue.
There is a helpful instruction from Apple - Pair a wireless device with Xcode (iOS, tvOS) and I assume that you did as they recommend.
Such issues usually appear due to the following reasons:
Something is wrong with your network configuration. The easiest way to check is to try to wirelessly connect your iPhone to be sure that you do not have the same problem. If this is the case then try to white-list the IP address for the Apple TV on your router and open necessary ports;
About port, Apple recommends the following configuration: Communication to network devices uses port 62078. Some networks block specific ports. You may need to check your network settings or ask your system administrator to open this port;
Your Xcode version has to be in sync with tvOS. From the screenshots, I see that you have tvOS 13.3.1. It means that it is better to use Xcode 11.3.1 in this configuration. But you mentioned that you already tried this.
The option that always works to me is to use an Ethernet connection. I connect my AppleTV via the ethernet cable to my router and access it from my MacBook without problems:
Connect the device to the same network using an Ethernet cable.
For an Apple TV, connect using the Ethernet port in the back of the device.

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

IPv6 issue application Rejected many times

Our update has been rejected many times for ipv6 network connectivity issues. Our networking code has not changed between the previous release and this current release.
once i have just changed the testing credential which we gives apple for testing purpose and my application goes live.so now i am very much fed up with the things.because sometime apple accept and sometime its rejected.but he give the same reason due to ipv6 compatibility issue.
i have refer the apple documentation as well.any one can help me for this..
i have also search lots op link of stack overflow.
thanks in advance.
I have faced similar issue previously.
Steps you need to take care:
No IP Address should be hard coded.
Example: let api = 54.32.55.88 is invalid, use let api = www.mydomain.com
If you are using any Pods make sure they are compatible with IPv6.
Update the Reachability if you are using older.
Check your server configuration if its configured properly. Removing the AAAA if not valid for your configuration
If using AWS, AWS doesn't support IPv6, nor IPv6-only DNS through Route53.
Check some other solutions here.
Yes. I too faced this issue before many times. Apple is now supporting only apps those are compatible with IPv6.
First I tested my application as per their description. I tested on IPv6 but I didn't get any error as they said. So first complete debugging after connecting to IPv6. If you feel, it's working fine then do this.
I found out the IPVersion of my network through different websites. I took screenshots of the network I connected to on mobile and sent those screen shots to apple for review(saying it's a proof of connecting to IPv6).
Here below are the couple of sites that help you in finding out which version you are using.
Test IPv6
Google IPv6 test
Now it's accepted
As of June 1st 2016, all apps submitted to apple must be ipv6 compatible.
Here is the link for the announcement.
Now this comes with a lot of caveat. Basically this would take time to implement and apple started rejecting apps since September end. Now new apps that was being submitted was caught first, but now slowly apple is checking for ipv6 compatibility in old apps that owners are updating too.
Basically what apple tests is they connect their test device into a ipv6 network(their ISP broadcasts ipv6 connectivity), now if your app has a backend server, it should support any device that hits that server with ipv6 connectivity.
You can check whether your backend server is ipv6 compatible from here. Just paste your backend URL in the following and you will be able to see if your backend supports any ping from an ipv6 network.
If it doesn't then you have to make your server ipv6 reachable.
same issue was for me, if you are using Network Reachability class then update it from apple doc here.
Now my app is live with this fix.
I had same type of problem. I made an app which has a screen which only comes when a notification come so they(Apple team) could not able to check my app and giving me IPv6 issue then i told him about my app briefly that how my app works. So point only that tell him(apple team) about your app your problem can be solve.

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.

How to test iOS app on supporting IPv6? Apple rejected app as it is not IPv6 compatible

have apps, built 2015 and 2014. How can I test them for IPv6?
If my apps doesn't support IPv6, what should I do?
My apps are using AFNetworking and Alamofire. I'm connecting mostly to domains ( Ex. api.example.com/v1/...). Only 1 app use IP: (ex: 12.12.12.12:3000/api/v1/...).
This solution only works if you have an ethernet connection.
For creating an iPV6 NAT64 wifi network, follow these steps
Step 1 : Open system preferences
Step 2 : Open Sharing
Step 3 : Click on internet sharing
Step 4 : Click Wifi in the ports while pressing option(ALT) key. A Create NAT64 Network checkbox will be displayed on the bottom after that. It is important to press ALT while selecting WIFI for displaying the checkbox
Step 5 : check Create NAT64 Network checkbox.
Now test the application in the created network.
The following link from Apple outlines the requirements for transition to IPv6 support so I suggest reading it carefully. Apple provides guidelines to insure that your app is IPv6 compatible including which API's should and should not be used, not hard-coding IP addresses, etc. They even detail how to setup a local Mac-based IPv6 DNS64/NAT64 network to test against.
Holding command + option while clicking on the Sharing preference pane will add a "Create NAT64 Network" option for Internet Sharing. Enable that and devices connected through your shared connection will be in a NAT64 connection.
I've found this walkthrough in how to setup your Mac for Internet Sharing to test IPv6 from Brian Coleman to be quite helpful.
http://www.brianjcoleman.com/tutorial-how-to-test-your-app-for-ipv6-compatibility/
It has several screenshots, step-by-step instructions to guide you through the process. I hope this helps!

Resources