Supporting IPv6 Networks
In my list of transitions I forgot to mention IPv6 support. Mostly because I didn’t stumble upon it. Until today.
I knew it was announced. I just didn’t recall when it was the deadline. It was June 1st 2016. From that day on every iOS (and maybe Mac app?) has to support IPv6.
So yesterday I submitted an app for a client and my jaw dropped when it was rejected because it didn’t support IPv6. Not because I didn’t expect it, but because the app doesn’t connect to the web. There’s no usage of NSURLConnection
nor CFHTTPMessage
. How come?
Then Matthijs posed an innocent question: “are you using an analytics library?” Yep, I was using Google Analytics.
Since I already agreed with the client to use Google Analytics I didn’t want to propose a change so I invested some time trying to find out whether IPv6 was supported by Google’s library.
After one hour I didn’t find an answer. The Podspec points to a gzipped file that includes just the headers. Not very helpful.
While searching I also realized that I was using Crashlytics to catch crashes and so I checked it as well. Luckily it fully supports IPv6.
Then the insight. “I am already using Crashlytics, I can use Answers”. I sent a quick message to the client. He immediately loved the Answers dashboard. Five minutes later I already swapped Google’s library with Answers.
Luckily that was the only dependency I had but I don’t want to be in the shoes of those who have many and have to test them against an IPv6 network.
I wish there was an automatic way to check this compatibility before submitting an app to the store.
In case you are testing, have a look at the misadventure that my friend Ellen had a few weeks ago in setting up a test environment.