Skip to main content
How-to

React Native deep linking setup and QA checklist

React Native teams can share one route model across platforms, but link reliability still depends on native iOS and Android verification. Use this guide to connect screen routing, domain files, fallback behavior, and attribution checks before launch.

Start with the route contract

Before editing native files, define the public URLs your campaigns and product flows will use. Each URL should resolve to a specific React Native screen, preserve required query parameters, and have a documented fallback for users without the app installed.

Minimum route inventory

  • Canonical HTTPS host used in production.
  • Screen name, path pattern, and required parameters.
  • iOS and Android fallback destination.
  • Allowed attribution keys such as source, medium, campaign, and content.

Four layers to verify

LayerPassing signalRisk if skipped
Shared route mapEvery campaign URL maps to one named screen with expected path and query parameters.Links open the app but land on home or lose campaign context.
iOS Universal LinksAssociated Domains and AASA include the production host and path patterns.Links fall back to Safari or fail after bundle ID or domain changes.
Android App LinksIntent filters, package name, SHA-256 fingerprints, and assetlinks.json match the release build.Android shows a browser chooser or opens the wrong handler.
Fallback and attributionNon-installed users reach the right store or web page and UTMs survive redirects.Paid or lifecycle traffic becomes hard to attribute after install or fallback.

Release sequence

  1. Publish or update AASA and assetlinks.json for the production linking domain.
  2. Confirm native entitlements and intent filters match the same host and paths.
  3. Open links from cold start, warm app, and background states on real devices.
  4. Uninstall the app and verify fallback behavior for the same URLs.
  5. Inspect click logs or analytics events to confirm UTMs and route parameters survive.

Common failure pattern

The app opens during a developer test, but campaign traffic still fails because only one platform was verified. Treat React Native routing, iOS association, Android verification, and redirect parameters as one release gate.

Related guides