Notice: Inconsistent Universal Link Behavior on iOS 11.2

Note that this behavior is still present on the latest iOS devices.

 

Starting with iOS 11.2, you might notice some inconsistent behavior when deep linking into your app with Universal Links. It appears that a bug was pushed in this iOS version that can cause Universal Links to fail despite being properly configured. The problem is intermittent, so you may or may not be able to consistently reproduce it. We first noticed when our regression suite started to observe failures after the iOS 11.2 release, and thought that Apple would fix it in a subsequent patch. Unfortunately, there have been four minor patches released, and none have addressed the issue, so we thought it prudent to raise the issue publicly. To learn more, keep reading or request a Branch demo

 

What broke in iOS 11.2?

If you recall, iOS uses the domain information from your Apple App Site Association (AASA) file to open apps with Universal links. When a given user installs your app, the AASA file is downloaded onto the user’s local storage, and is used to configure Universal Link routing when the user taps a link with a domain configured in the file. With iOS 11.2, we found that the AASA file is no longer downloaded reliably onto your user’s device after successful app install. As a result, if the file is not downloaded, clicking on Universal Links will no longer open the app.

We’ve reproduced this behavior with fresh installs, re-installs, and even testing installs from Xcode. If your Universal Links do fail to open the app on install, you can try removing the app, restarting the device, reinstalling the app, and giving the OS roughly 30-60 seconds. If not, well… rinse and repeat. Obviously, this is not a recommendation you can give to the users you just worked so hard to acquire.

 

What can you do?

Fortunately, with Branch links, you can completely recover from this problem with $uri_redirect_mode, which allows you to specify opening the app with URI schemes. You can set uri_redirect_mode to 1 or 2 on your Branch links, and we will work to intelligently detect whether the user has the app, and will then open it with URI schemes rather than relying on Universal Links.

Read more about our findings on iOS 11.2’s Universal Links behavior on the bug report we filed with Apple, and upvote if you’ve run into the same issue. We’d appreciate the community support to alert Apple of the issue, and to ensure it is addressed with haste.

Questions? Email us at [email protected], and we’ll be glad to help!