Testing and Troubleshooting
Testing deferred linking has platform constraints: full deferred flow requires store redirect chain (App Store / Play Store).
Testing iOS
If your app is not yet released:
- Uninstall the app from device.
- Open a Detour link in a mobile browser.
- Store redirect may fail if the store app page is not public yet.
- Install your development build.
- Launch app and verify link is resolved within matching window (currently 15 minutes).
Testing Android
For non-production builds, install referrer often does not work in store test tracks, so deterministic matching can be unavailable. You can still verify probabilistic flow:
- Uninstall the app from device.
- Open a Detour link in a mobile browser.
- Redirect to Play Store can fail if production listing is unavailable.
- Install your development build.
- Launch app and verify link is resolved within matching window (currently 15 minutes).
For local install referrer testing workarounds, see: https://medium.com/@madicdjordje/how-to-test-the-play-store-install-referrer-api-78a63d59945b
Testing Android App Links
When app is already installed, link opening depends on certificate fingerprint configured in dashboard:
| Installation method | SHA-256 to configure |
|---|---|
Direct .apk from EAS | EAS fingerprint |
| Google Play Internal Testing | Play App Signing key |
Local development (npx expo run:android) | Local debug keystore |
Common issues
- No match found (
404)- click is older than matching window
- click was not recorded in dashboard logs
- for deterministic Android flow: missing
click_idin referrer
429 Too Many Requests- add retry/backoff and avoid heavy testing with one key across many devices
- iOS clipboard prompt not appearing
- check
shouldUseClipboard: true - verify copy-link flow is enabled in dashboard
- check
- Link processed twice
- confirm you call
clearLink()after navigation - confirm exactly one
DetourProviderinstance is mounted
- confirm you call
- Link is not processed on Expo Web
- web runtime is intentionally unsupported
- provider on web returns a no-op context and skips SDK initialization
For integration patterns that are easy to test end-to-end, use Examples.