Test IPv6 Compatibility of iOS Application

Apple announced that all apps submitted to App Store should support IPv6-only networking, otherwise app will be rejected.

If you are developing an iOS application and using non-standart networking libraries (let’s say curl library) or 3rd party development environments your application has risk to get rejected.

In this article I’ll try to explain how you can test if your application supports IPv6-only networks. You will need a mac and an ethernet cable for Internet connection, here we go.

Setting Up IPv6-only Network

  • Connect your Mac to LAN via ethernet cable (you can’t use Wi-Fi for Internet connection since we’ll use it later)
  • Open System Preferences
  • Go to Sharing while holding option(alt) key pressed
  • Navigate to Internet Sharing from left menu
  • Select Create NAT64 Network from bottom-left corner (if you don’t see it go back and be sure you’re pressing option key when you navigate to Sharing)
  • Select Thunderbolt Bridge from Share your connection from drop-down menu
  • After you select Wi-Fi from To computers using you’ll see Wi-Fi Options button enabled in To computers using
  • Use Wi-Fi Options to set your network name and password
  • When you’re done setting Wi-Fi options, enable Internet Sharing from side menu
  • Press Start when you asked for confirmation

Test Your Application

If you followed steps and set everything correctly you should be able to see your Wi-Fi network from your Apple device.

  • From device, connect to NAT64 network over Wi-Fi. Make sure mobile data setting is set to off.
  • Test your network, check if you can open google.com from your browser
  • If your network is working, open your application and test if network modules are working or not
  • That’s it!

Use For Anything

What you have done so far is actually setting your mac device as NAT64 gateway which translates between IPv6 and IPv4.

Testing iOS application’s IPv6 compatibility is just one scenario. You can test any PC, Android or embedded network application’s IPv6 compatibility over this network.