Universal Link broken in iOS 11.2

nice_pink picture nice_pink · Dec 13, 2017 · Viewed 10k times · Source

I am using Branch deep links in an app for sharing links to content in the app via social media. Everything was working fine quite a while.

When updating to iOS 11.2 I encountered the following behavior:

1) After the update the Universal Links still worked.

2) I uninstalled the app and reinstalled it.

3) Since then, all links always open the Branch deep view in Safari.

4) Tapping "Open The App", opens the AppStore.

It does not matter in which app I tap on the link (Notes, WhatsApp, Messages, Facebook, ...), it is always the same behavior.

The Universal Link was not bypassed by tapping the "go to link" button in the upper right corner (when app was opened). I tested on three different devices (iPhone 5s, iPhone 6s, iPhone 7). All led to the same result.

I found out that there was a bug in iOS 11 beta 2 which was fixed in the beta 3 (Ios 11.2 beta universal links open my app and safari), but it might have reappeared?!

Anyone having the same issues or a way to fix it?

Answer

clayjones94 picture clayjones94 · Dec 14, 2017

Sometimes universal links don't work on iOS 11.2 for newly installed apps.

The symptoms are that clicking on a universal link won't open an app that is newly installed on a phone. The universal link takes the user to a web page and is prompted to download the app again.

Through testing here at Branch HQ we've discovered that the Apple App Site Associated Domains file (apple-app-site-association file) isn't always downloaded after the app is installed, either when it's installed from the app store or from Xcode.

Removing the app, restarting the phone, re-installing the app, and waiting a minute or so seems to clear this up. This is a horrible user experience obviously.

We have filed a radar with Apple and will continue to track this issue.

Mitigations

Set $uri_redirect_mode

Setting the $uri_redirect_mode option on links can have Branch try to force the link to open the app, even if it might show an error to the user. You can read about this option here, in the Branch docs.

Here's more info about turning on $uri_redirect_mode in your Branch Journey or Deepview banner, the web snippet that Branch shows the user if the ends up deep linking into a web browser:

Advanced Journey Configuration

Deferred Deep Linking Mitigates This Problem

This issue is mitigated by Branch's deferred deep linking tech: If the user opens the app from their home screen after the universal link is clicked, deferred deep linking still works, and the link content is shown in the app.