Browse the documentation

Deep links: open your app from a link

2026-11-01· 5 min read· View as Markdown

A deep link opens your app on the right page, not the browser. Someone taps a link to https://example.com/orders/42 in an email and lands on that order in the app. Phones only allow this if your domain confirms that the app belongs to you, through one small file on your site.

What you need

  • The Deep links plugin turned on in your project
  • A native build: Android Build (Native), or iOS with native navigation
  • One file on your site for Android, and one for iOS

Android: assetlinks.json

Host this file at exactly https://your-domain/.well-known/assetlinks.json. Once you have a build, your project page shows the file filled in with your package name and SHA-256 fingerprint, ready to download.

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.app",
      "sha256_cert_fingerprints": ["AB:CD:…:EF"]
    }
  }
]

The Android Build (Web) needs this same file for another reason: without it, the app shows an address bar.

iOS: apple-app-site-association

Host this file at https://your-domain/.well-known/apple-app-site-association. It has no extension, and your server must send it as application/json, with no redirect. Your project page gives you the exact file.

{
  "applinks": {
    "apps": [],
    "details": [
      { "appID": "TEAMID.com.example.app", "paths": ["*"] }
    ]
  }
}

A wrong appID is the most common trap. The file still looks valid, but links silently open Safari. Use the file from your project page, not a hand-written one.

Check your files

Enter your domain in the deep link validator. It fetches both files as a phone would and tells you what's wrong: wrong address, wrong format, missing fingerprint or a redirect.

How to host the files

PlatformHow
Lovable, Bolt, VitePut them in public/.well-known/
Next.jsPut them in public/.well-known/, or serve them from a route
Webflow, Bubble, FramerThese don't always allow files at that path. Use a proxy or a worker in front of your domain, or a route on a subdomain
Your own serverServe the files as static, with application/json

Test on a real phone

  1. Install the app

    Android checks your file when the app is installed. iOS gets it through Apple's servers, which can take a while after a change.

  2. Tap a link from another app

    Use a notes app or a message. Typing the address in the browser's address bar doesn't count: it stays in the browser.

  3. Check the page

    The app should open on that exact page. If your site has a sign-in, test it when signed out too.

Frequently asked questions

Links stopped opening the app after publishing on Google Play. Why?+

Google Play re-signs your app with its own key, so the fingerprint changes. Add the SHA-256 of the app signing key, shown in the Play Console under App signing, to assetlinks.json next to the existing one.

Do I need deep links for Google sign-in?+

No. Google sign-in returns through your app's own address, as explained on the sign-in page. Deep links are for https links to your site.

Does a deep link work if the app isn't installed?+

The link opens your website in the browser, as usual. That's why the same address works for everyone.

Why does my iOS deep link still open Safari?+

Check the file with the validator first. Then check the appID, which must use the Apple team that signed the app. Also check that your iOS build uses native navigation, as deep links need it on iOS.

See it with your own site

Paste your URL and get a free Android test build on your phone in about 3 minutes.

Publish now

Keep reading