Configuring IPv6 network - ios

I need to test my application on IPv6 network on iPhone. As far as I have learned, I have several options:
Share IPv6 Internet via iMac as described in this tutorial; though when I tried to follow the steps there on an MacBook Air connected by bluetooth to an iPhone with turned on 3G there was no "Create NAT64 Network" checkbox for step 7 - do I nessesarely need to be connected via cabel or I need a stationary iMac?
Configurate IPv6 wi-fi on a router; though as far as I have learned to do this I need some special router that supports IPv6 and my Internet provider should be able to give me IPv6 connection. Is this correct?
Are there other, maybe easier ways to simulate IPv6 on an iPhone? How do I tell router that supports IPv6 from the one that does not?

I know its a bit late, yet it might help someone. You can create an ipV6 network via step 1 described. The trick is, at the time of clicking on BluetoothPAN option, you should press the option(ALT) key in the keyboard. Then Create NAT64 Network checkbox will be displayed at the bottom. This is the same case for WIFI & Ethernet too

Related

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

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!

Testing IPV6 readiness of iOS app

I have analysed the IPV6 readiness of our apps.
On one of the screens, the user has to enter a ip address(e.g.: http://9.112.45.67:8080/gateway) and that is not a URL.
For testing my app on iPad, I create NAT64 environment on my Macbook Pro.
(Wi-Fi internet sharing with 'Create NAT64 Network').
I launch the app, enter the http://9.112.45.67:8080/gateway address and my apps works perfectly fine.
So for IPV6 address testing what else should I do?
I enter http://[2002:ab1:971::ab1:971]:8080/gateway and test.... This does not work.
The app does not use any kind of hardcoded ip addresses and also it uses NSURLConnection for making network requests.
I am not sure if this is enough to test the readiness. Any guidance is much appreciated.
Thanks in advance.

How to check IPv6 address of an IPhone

I have setup a IPv6 nat64 environment based on apple recommendations
https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html,
however when i connect my iphone 6 to this network i am not able to see the ipv6 address in Wifi network settings to which i am connected. Please help me to get the ipv6 address of iphone.
The iPhone tool of Hurricane Electric is very useful to check your network settings and connectivity:
https://itunes.apple.com/us/app/he.net-network-tools/id858241710
The built-in user interface from Apple doesn't show IPv6 information unfortunately.

iOS Simulator on Mac with Ethernet & WiFi

I am working on a Mac that has an Ethernet connection to a LAN and the Internet. I have an iOS application that I am running in the simulator that needs to connect to a WiFi network in another office. I turned on Airport and connected to the WiFi network I need, but I don't know if the simulator is using the Ethernet or Wifi connection to communicate. I looked for settings in the simulator and couldn't find a way to tell it to use the WiFi connection exclusively.
Thanks for your help.
A coworker answered this question for me today. Apparently, the iOS simulator does not do WiFi. It only knows about a network connection. He said the simulator simply reports that there's a connection, but it's not WiFi.
Hope this helps someone.
I guess iOS Simulator uses whatever network connection is available tot the Computer it is running on. If there are multiple Connections it should scan both IP ranges... I don't exactly know how it handles the case both ip ranges are the same... This is (even if possible) no good solution, because you never exactly know if there are multiple devices with the same IP...

Resources