ordinaryman09
ordinaryman09

Reputation: 2771

Firebase Dynamic Links do not survive app install on iOS 11.3.1

Firebase Dynamic Links do not survive on iOS 11.3.1 when user don't have installed. Anyone else experiencing this issue? This works fine prior to iOS 11.3.1

Repro steps::

  1. Click on FDL link
  2. User redirected to app store
  3. User install app
  4. User open app
  5. FDL params not passed
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {

//the url here returns:
//google/link/?match_type=none&match_message=No pre-install link matched for this device.
or     
//google/link/?dismiss=1&is_weak_match=1

}

Upvotes: 7

Views: 3838

Answers (2)

Anh Tran
Anh Tran

Reputation: 1

I had the same issue. And I found that when I delete FirebaseDeepLinkPasteboardRetrievalEnabled in Info.plist the problem is resolved

https://firebase.google.com/docs/dynamic-links/ios/receive

  1. Optional: Disable the Dynamic Links SDK's use of the iOS pasteboard.

By default, the Dynamic Links SDK uses the pasteboard to improve the reliablity of post-install deep links. By using the pasteboard, Dynamic Links can make sure that when a user opens a Dynamic Link but needs to install your app first, the user can go immediately to the original linked content when opening the app for the first time after installation.

The downside of this is that use of the pasteboard triggers a notification on iOS 14 and later. So, the first time users open your app, if the pasteboard contains a URL, they will see a notification that your app accessed the pasteboard, which can cause confusion.

To disable this behavior, edit your Xcode project's Info.plist file and set the FirebaseDeepLinkPasteboardRetrievalEnabled key to NO.

Upvotes: 0

ordinaryman09
ordinaryman09

Reputation: 2771

I've reported this to Firebase and they're still working on the fix.

https://github.com/firebase/firebase-ios-sdk/issues/1244

In the meantime, the workaround is to turn off the forcedRedirectEnabled.

FIRDynamicLinkNavigationInfoParameters *navigationParams = [FIRDynamicLinkNavigationInfoParameters parameters];
    navigationParams.forcedRedirectEnabled = NO;
    components.navigationInfoParameters = navigationParams;

or if you use the admin console to generate the link, you need to leave the Skip the app preview page setting unchecked.

Note that this means users will see one interstitial page before it redirect to app store, which is not ideal but at least FDL params will be passed.

Hope this helps someone.

Cheers!

Upvotes: 5

Related Questions