Apple made iOS 9.3 available last week, fixing a number of serious security holes.
But it hasn’t been plain sailing for everyone, with hundreds of Apple users complaining in the Apple Support Communities and on Twitter that links in Safari, Mail, Messages and other apps sometimes cause their iDevices to crash, freeze or hang.
Apple user mor1s reported the issue a week ago in an Apple Support thread that has about 800 replies, saying:
After the upgrade, I can’t click links when searching something on Google in Safari or clicking a link in the Mail, the apps just freeze.
The crashing appears to be caused by a bug in the way iOS handles Universal Links, introduced in iOS 9.
Universal Links allow you to visit web URLs in a website’s associated app, if you have that app installed.
(For example, you could open a link to Twitter in your Twitter app, rather than the link directing you to Twitter.com inside your browser app.)
According to developer Ben Collier, developers put an “app association file” on their websites, which tells iOS whether to open a link inside an app.
The bug in iOS causes apps to crash when they are served app association files that are too large, Collier says on his website:
When you tap a link in iOS, the system looks through the database of installed apps’ supported URLs to see if it matches a pattern an installed app can handle. If nothing matches it opens it up as a standard app.
It looks like there’s a bug in iOS that breaks the Universal Links if it gets served an app association file that’s too large.
After 9to5Mac reported that users of the Booking.com travel app were experiencing the crashing issue, developer Steve Troughton-Smith discovered that Booking.com included every link from their website in their association file, a 2.3 MB download.
https://twitter.com/stroughtonsmith/status/714330503248224256?ref_src=twsrc%5Etfw
As Collier explained, Apple allows developers to use pattern-based matching, instead of including a list of every URL from their website.
Booking.com has fixed their app association file to reduce its size to 4 KB, but other apps may still have this problem.
Apple told 9to5Mac that a fix will be available “soon”:
We are aware of this issue, and we will release a fix in a software update soon.
In the meantime, there are a few fixes reported by Collier.
First, restarting your device will allow links to work, but the freezing issue may come back.
A second option is to turn off JavaScript in Safari by going to Settings > Safari > Advanced and toggling JavaScript to off.
Another convoluted option involves a multi-step rebooting process.
Image of Safari web browser icon courtesy of ymgerman / Shutterstock.com.
2753productions
Maybe Apple should ask the FBI for help….
Laurence Marks
What? The web developers never heard of wildcards? And Apple didn’t explain them in their documentation? We are becoming a nation of third-grade intelligence. (sigh)
Paul Ducklin
Surely there’s no *necessity* other than implementation limits to use wildcards rather then an explicit list? Indeed, saying exactly what you mean can often be a lot safer. (For example, wildcard TLS certificates make it easier for unauthorised web servers to spring up amongst your “secure” web services.)
If there was no limit given on size in the documentation, why not use a precise list if you wish? Even for a mobile app, a 2MB data file is hardly a scary concept these days. Not in a world of 1GB-and-up iOS updates :-) I don’t really see why that gets a “Wow” from Mr Troughton-Smith.
Wilderness
Do we know how often that file is needed to be downloaded by the app? Once per day would be very different than a once with every single update request.