Deep linking — Android App Links for nizkhata.web.app - #58
Merged
Conversation
- Web: host /.well-known/assetlinks.json (via a Hosting rewrite to a non-dot file so Firebase's dotfile ignore doesn't skip it) with the release cert SHA-256 for package com.nizkhata.nizkhata - App manifest (CI patch): autoVerify App Links intent-filter for https://nizkhata.web.app + flutter_deeplinking_enabled so go_router receives the path - Router: map web-app paths (/settings/*, /) to native routes and fall back to /dashboard for anything unmatched - Bump version to 1.0.10+11 Deploys via deploy.yml on merge to main (publishes assetlinks.json); the versioned APK carries the intent-filter. Verification is performed by Android at install against the live assetlinks.json.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Verified Android App Links: tapping a
https://nizkhata.web.app/...link opens the native app and routes to the matching screen.Three pieces
1. Domain ownership — hosts
/.well-known/assetlinks.jsononnizkhata.web.appwith the release cert SHA-256 forcom.nizkhata.nizkhata. Served via a Firebase Hosting rewrite to a non-dot file, becausefirebase.json'signore: ["**/.*"]would otherwise skip the.well-knowndot-folder. Deploys automatically viadeploy.ymlon merge to main.2. App declaration — the
android-apk.ymlmanifest patch now injects anautoVerifyApp Links intent-filter forhttps://nizkhata.web.appplusflutter_deeplinking_enabled, so go_router receives the incoming path. (Validated the injection against a sample manifest.)3. Routing — the app router maps web paths to native routes (the web nests under
/settings/*, e.g./settings/accounts→/accounts,/settings/workspace→/workspace-settings) and falls back to Dashboard for anything unmatched or auth-gated.Version → 1.0.10+11.
flutter analyze: 0 errors.Verification (can't be done from CI)
Android verifies App Links at install time against the live
assetlinks.json, and "tap link → app opens" needs a real device. After this merges (web deploys the file) and you install the v1.0.10 APK, links should open the app. To check verification on-device:adb shell pm get-app-links com.nizkhata.nizkhatashould shownizkhata.web.app: verified.🤖 Generated with Claude Code
https://claude.ai/code/session_016jkAcgzuuxTfBiAgMLWgC4
Generated by Claude Code