What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
To make a website URL open the right screen in a Flutter app, configure two separate things: the app must route the incoming URI, and Android or iOS must verify that the website is associated with the app. Android uses App Links and a hosted assetlinks.json file; iOS uses Universal Links, an Associated Domains entitlement, and a hosted apple-app-site-association file. Configure both sides, then test a real tapped link on each platform.
How Flutter deep links work
Flutter documentation defines deep linking as launching an app with a URI. For web links, that URI is usually an HTTPS URL with a host and path. Android App Links and iOS Universal Links let an operating system open a verified website URL in its associated app; they are not the same as adding routing logic inside Flutter.
As an Amazon Associate I earn from qualifying purchases.
Think of the flow as two independent checks:
- Website association: the platform verifies that the domain is allowed to open the app.
- App routing: Flutter receives the URI and selects the corresponding screen or content.
If the first part is missing or invalid, the URL may remain in the browser. If the second part is missing or incorrect, the app may open but fail to show the intended destination.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesChoose a Flutter routing approach
The Android manifest and Apple entitlement deliver a URI; they do not decide what your app should display. Your Flutter app needs routing behavior that maps the incoming path and any relevant URI data to a destination.
#1 Best Overall
- Simple navigation needs: Flutter’s navigation guidance says an app without complex deep-linking requirements can use
Navigator. - Specific deep-link or advanced routing needs: use Flutter’s
RouterAPI or a routing package. Flutter’s setup examples usego_router, which Flutter describes as maintained by the Flutter team.
Plan the route mapping before configuring the domain. For each URL pattern you intend to support, decide which screen it should open and what the app should do if the path is unknown. The platform filters and association files should allow only the URLs your app is meant to handle.
Android App Links setup
1. Add an HTTP(S) intent filter
In android/app/src/main/AndroidManifest.xml, add a VIEW intent filter to the main activity. Flutter’s Android recipe uses the DEFAULT and BROWSABLE categories and sets android:autoVerify="true" for HTTP(S) URL rules. Configure the scheme and host to match the domain you intend to associate.
Rank #2
<!-- Add a VIEW intent filter to the main activity. -->
<!-- Include DEFAULT and BROWSABLE categories. -->
<!-- Set android:autoVerify="true" and match your HTTP(S) host. -->
This is a structural reminder, not a complete manifest: preserve the rest of your project’s activity configuration and make the host rules match the URLs you plan to handle.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 112. Publish the Android association file
Host a JSON file at https://yourdomain/.well-known/assetlinks.json. It must associate your Android package name with the SHA-256 fingerprint of the signing certificate used for the app. If you distribute builds signed with different keys, include the fingerprints that should be trusted.
Use the production package identity and signing certificate for the build you intend users to install. A mismatch between the manifest’s host, package name, or certificate fingerprint and the website file can prevent verification.
iOS Universal Links setup
1. Enable Associated Domains
In the iOS app target, enable the Associated Domains capability so the app receives the corresponding entitlement. Add an entry in the form applinks:yourdomain for each domain the app should handle. Use the domain without an HTTP or HTTPS prefix.
Rank #4
2. Publish the Apple association file
Host an extensionless JSON file named apple-app-site-association at https://yourdomain/.well-known/apple-app-site-association. The file identifies the app with the Apple Team ID followed by the bundle ID, and its components specify which URL paths are permitted to open the app.
Make the permitted paths agree with the routes Flutter actually handles. Apple’s CDN may take up to 24 hours to request the AASA file, so a newly published or changed association may not be reflected immediately.
Best Value
Android App Links and iOS Universal Links compared
| Configuration | Android App Links | iOS Universal Links |
|---|---|---|
| App-side setup | VIEW intent filter in AndroidManifest.xml, with DEFAULT and BROWSABLE categories and android:autoVerify="true" |
Associated Domains capability/entitlement with applinks:yourdomain |
| Website file | https://yourdomain/.well-known/assetlinks.json |
https://yourdomain/.well-known/apple-app-site-association |
| App identity | Package name and SHA-256 signing-certificate fingerprint | Apple Team ID followed by bundle ID |
| URL selection | Intent-filter scheme and host rules | AASA components and path rules |
| Important test caveat | A direct adb launch can open the app without proving website association is configured |
Apple’s CDN may take up to 24 hours to request the AASA file |
Check Flutter version and link-handler setup
Flutter’s deep-link cookbook guidance marks Flutter 3.27 as a setup boundary. For Flutter versions before 3.27, the cookbook instructions require manually enabling deep linking in platform configuration. Check the instructions that match your project’s Flutter release rather than assuming a current default applies to an older app.
Third-party link handlers, including app_links, can conflict with Flutter’s default handler. The cookbook explains disabling Flutter’s handler when using a third-party plugin. The precise configuration depends on the Flutter version, plugin release, and platform lifecycle; verify the package’s current documentation and changelog before adopting a version-specific setting.
Validate configuration and test real links
Flutter DevTools includes a deep-link validator for Android and iOS as of Flutter 3.27. Use it to help identify issues across the website and app configuration, but also test the complete experience from a tapped link on each platform.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →- Check the hosted files: confirm each association file is available at the required HTTPS
/.well-known/path and contains the app identity and URL rules for that platform. - Check app configuration: compare the Android intent-filter host and signing identity with
assetlinks.json; compare the iOS entitlement and bundle identity with the AASA file. - Check Flutter routing: open representative supported paths and confirm each lands on its intended screen. Also try an unsupported path and confirm the app handles it appropriately.
- Tap a real link: open a link from a browser or another app on Android, and test on an iOS device or Simulator. A direct Android
adblaunch demonstrates that the app can be opened with a URI; it does not prove the website association file is present or valid.
For an iOS Simulator test, Flutter’s recipe gives this command, replacing the domain and path with one you support:
xcrun simctl openurl booted https://yourdomain/path
For iOS association changes, allow for Apple’s CDN request delay before treating an immediate failure as proof that the file is malformed. DevTools validation, a URI launch, and a tapped verified web link answer different questions; use the user-facing tap to confirm the whole flow.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




