Christopher Kemmann
·Product Development At SparrowSure, Inc.

Deeplinking not working for iOS

Project Settings

TL;DR - Deep linking for my reset password / new user invite emails works for Android but not iOS.

I'm trying to get deep linking set up for my auth emails (reset password, new user invites, magic links, etc.) and I'm running into an issue with getting Universal Links to work on iOS. My app's front end is obviously built in FlutterFlow and my backend is built in Supabase. I'm using Supabase's email functionality (served by Resend) for the various auth emails my users need. I followed the Branch Deep-linking Library tutorial in the FlutterFlow docs, and I've gotten my setup to work for App Links for Android so that tapping on a "Reset Password" link in an email client opens the app directly to the reset password page. However, when I try to replicate this on iOS, it instead opens a Safari browser to the default URL I have set as my fallback in my Branch dashboard.

What have you tried so far?

Things I've tried in FlutterFlow:
✅ Follow the docs here: https://docs.flutterflow.io/concepts/navigation/deep-dynamic-linking/#branch-deeplinking-library.
✅ Follow the video tutorial here: https://www.youtube.com/watch?v=nEBot6-zhfY.
✅ Verify I have the required code from the Configuration File Snippets added in Runner.entitlements and Info.plist.
⚠️ Tried explicitly declaring the branch default and alternate URLs in Runner.entitlements instead of using Environment Variables as recommended in the docs and included in the code there (so applinks:mydomain.app.link vs applinks:{{branchio-dynamic-linking-akp5u6.branchLinkDomain}}.

Things I've tried in Branch:
✅ Ensure I have my iOS URI Scheme set (it matches my Android URI scheme), so like myapp://
✅ Added a Custom URL for my fallback for iOS, like app.myapp.com <-- my FlutterFlow webapp
✅ Ensure my Apple App Store ID matches what I have in App Store Connect.
✅ Ensure my Bundle Identifier matches what I have in Apple Developer Console, as well as the package name in App Details in FlutterFlow
✅ Ensure my Apple App Prefix matches what I have in Apple Developer Console.
✅ Validate my AASA using Branch's Validator located here: https://branch.io/resources/aasa-validator/#resultsbox.

Things I've tried in Supabase:
✅ Follow the docs here: https://supabase.com/docs/guides/auth/native-mobile-deep-linking?queryGroups=platform&platform=flutter&queryGroups=os&os=ios.
✅ Set up my Site URL (default redirect URL) to https://mydomain.app.link
✅ Added redirect URL wildcard: https://mydomain.app.link/*.
⚠️ Tried bypassing the use of {{ .ConfirmationURL }} or {{ .SiteURL }} in my email templates for my <a href=""></a> auth links and instead explicitly declaring the domain (like https://mydomain.app.link/newpassword).
⚠️ Tried with and without redirect methods, so "{{ .ConfirmationURL }}/newpassword" vs. "{{ .ConfirmationURL }}&redirect_to=/newpassword".

The only thing that "sort of" worked: setting my default redirect URL in Supabase to com.mydomain://myapp would open a safari page in iOS on tapping an email link and present the "Open in App?" prompt. However, doing this completely broke deep linking and App Links in Android.

✅ = Completed correctly
⚠️ = works on Android, not on iOS
**'myapp' and 'mydomain' are placeholders, obviously.

Did you check FlutterFlow's Documentation for this topic?
Yes
5
8 replies