Back at their June 2015 WWDC event, Apple announced that all iOS 9 applications must support IPv6. This week Apple declared that as of June 1 all apps submitted to the AppStore MUST support IPv6-only networking. From Apple's blog post:
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.As Apple continues to point out, the vast majority of application developers will not need to do anything to support IPv6. If developers use the standard networking APIs provided by Apple, they should not experience any problems in an IPv6-only network. It should "just work". It's only when developers use IPv4-specific APIs or addresses that there is a problem.
Why This Matters
This is an extremely important step. As I wrote last year after WWDC 2015, this requirement means that iOS apps will work in the IPv6-only networks that we are starting to see appear. More than that, this requirement will drive millions of developers to test their apps in an IPv6-only network. This kind of testing will increase basic knowledge developers have of IPv6 - and will lead to better networking knowledge all around. Additionally, if the app connects back to a web site or service, this requirement may encourage developers to understand what they need to do to make that site / service reachable via IPv6. It seems that Apple may be testing for an "IPv6-only" network that also has IPv4-translation at the edge. From Apple's developer documentation:"A DNS64/NAT64 network is an IPv6-only network that continues to provide access to IPv4 content through translation."So to meet the June 1 requirement, apps may only need to:
- work over IPv6 network connections; and
- use DNS over IPv6.
Getting Help
Apple suggested that people read their developer documentation "Supporting IPv6 DNS64/NAT64 Networks" and watch the WWDC 2015 video "Your App and Next Generation Networks". I previously provided a summary of this video along with screenshots of the major points. We would of course also suggest you visit our Start Here page to find IPv6 resources for your type of organization. Specifically for app developers we suggest:- Developer Resources for IPv6
- Making Content Available Over IPv6 - if your app needs to connect back from an IPv6-only network to your site/services, this explains options for making your web content available over IPv6.
More discussion of this topic: