Deep links are defined for all primary linkable screens
Why it matters
Without a linking config, every marketing email, push notification, universal link, and share-sheet URL dumps the user on Home with no context — breaking attribution, re-engagement, and the entire growth loop. This violates the App Store Readiness expectation that app.json scheme declarations route to real screens, and it silently kills conversion from paid acquisition channels because the destination screen the ad promised never loads.
Severity rationale
Critical because every external acquisition channel and notification loses its destination when deep links are not defined.
Remediation
Define a linking object that maps every linkable screen to a URL pattern and pass it to NavigationContainer. Put this next to the root navigator in src/navigation/linking.ts:
export const linking = {
prefixes: ['myapp://', 'https://myapp.com'],
config: {
screens: {
Home: '',
ProductDetail: 'product/:id',
Profile: 'profile/:userId',
},
},
}
Mirror every prefix in app.json under scheme and in your iOS Associated Domains entitlement.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Mobile Navigation & Deep Linking Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from mobile-navigation-linking·automated