AppleDeep LinkingDeveloper ToolsIndustry InsightsUniversal LinksUser Experience

Notice: Inconsistent Universal Link Behavior on iOS 11.2

By December 19, 2017 5 Comments

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 integrations@branch.io, and we’ll be glad to help!

Branch is a mobile linking platform providing unified mobile experiences and measurement for more than 50,000 mobile apps, including Airbnb, Ticketmaster, Reddit, Tinder and Amazon. Branch’s linking platform can help you grow your mobile app through features like deep linking, sharing, referrals, mobile banners and interstitials, custom app onboarding, and unified attribution across platforms and channels. Learn more about Branch or request a demo today.
  • Freddy Hernandez Jr.

    “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.”… How do you detect if the app is installed? I don’t use Branch but I have experienced inconsistency with deep links to my app as well and I’m trying to find a way improve the user experience when the deep link fails.

  • Khánh Phạm

    Hi. Do you know it’s fixed in 11.2.6 or not?

  • Mathias Vielwerth

    We’ve been running into a similar issue, with some users losing the AASA file on the phone after an update/failed update attempt to iOS. Is this something you have run into as well?
    I’ve just had the issue on my own phone when attempting to update to 11.3. I did an overnight update which (for some reason) failed. The next morning when checking that universal links still worked, every app on the phone was no longer able to do it. It required an update to each app, which would trigger a fetch of the AASA file, to get them back in working condition. Our app is, however, not on that gets updated that often, so we might have a problem there.
    Nevertheless, is this something you have encountered before? AASA files going missing as part of the patching process? It doesn’t fail on every phone, so just like the problem you are describing in this post, it is sporadic.

Request Demo Create Links