All apps must support IPv6-only networking by June

“Starting June 1, 2016 all apps submitted to the App Store must support IPv6-only networking.” - Apple

AppleInsider
Apple

The Xojo networking classes on iOS already satisfy this requirement.

Thanks for posting the links. Do we expect any issues with Xojo native classes?

The “classic” TCPSocket does not support IPv6 as far as I can tell. The newer xojo.net.TCPSocket may, but there is no note in the documentation to this effect that I can see. The xojo.net.HTTPSocket says it works on all platforms, so if that supports it and thats all you use then you’re good to go. The regular xojo.net.TCPsocket is still labeled as iOS only in the online documentation so if you have a MacOS app that you want to get on the app store that uses those then you’re going to have trouble. The SSL settings class also claims to be iOS only so it may not be possible to make an HTTPS connection. I spent some time recently trying to convert something to using the xojo.net.HTTPSocket so that I could use some http1.1 features, but I hit some snag that I couldn’t fix and I think it was the lack of support for HTTPS from the desktop, but I could be wrong about that I can’t quite remember what it was that made me have to go back to dealing with the issues of the older version.

But no, we’re not ready for it unless the documentation that claims those classes are iOS only is lagging behind the real state of things.

Hum. From what I read, the ipv6 requirement seems to apply only to iOS apps.

“At WWDC 2015 we announced the transition to IPv6-only network services in iOS 9.” This is about iOS- not the Mac App Store which does not have the same requirement.

I’d still like to be able to make IPv6 connections from desktop apps :wink: But I guess it’s not immediately critical then. Thats good. One of the apps that I’ll be releasing to the app store for iOS in the not too distant future needs to be able to talk to a desktop app though. How can I do that if I can’t make the desktop app receive it’s ipv6 connection.

And additionally now that I think about it, there are a LOT of iOS apps that connect to various home automation hubs and other such simple networked or IOT devices. Those do NOT support ipv6 either. Is apple going to stop those apps from being in the app store if they can’t update their hardware to support IPv6 connections? Thats either going to require a lot of fast talking or is going to be a big problem for a lot of people.

IPv6 networks can still route to IPv4 (via NAT64 etc). They generally aren’t cut off from the rest of the world. This requirement is primarily about iOS apps not falling over if they don’t get their own IPv4 address any more.

You can use our CURL Plugin for IPv6. Or the new framework sockets.

And of course your iOS app still needs to avoid any dependencies on IPv4 characteristics. Obvious ones include using Host Names and not hard coded IP addresses, providing storage large enough for IPv6 addresses, not calling lower level networking functions yourself. Apple’s docs list other things to avoid. Their developer tools even have IPv6 test tools to validate your iOS app but I haven’t tried those yet.

It’s good that Xojo’s networking functions adhere to these guidelines but your app also needs to behave itself. :slight_smile: