Как искать проблему, если переход по диплинку ведет на веб-страницу вместо приложения?
Что проверяют
Умеете ли вы искать причину по слоям, а не перебирать устройства наугад. Для https-ссылок главный подозреваемый почти всегда верификация домена, и интервьюер ждёт, что вы про неё вспомните. Следом спрашивают, чем App Links отличаются от Universal Links и как проверить это без разработчика.
Как отвечать
Сначала уточните условия: платформа и версия ОС, установлено ли приложение, откуда был переход (мессенджер, почта, адресная строка), схема ссылки (myapp:// или https://). С кастомной схемой браузер вместо приложения почти не встречается, значит речь о верифицированных ссылках.
- Android App Links: в манифесте
intent-filterсandroid:autoVerify="true", на домене файл/.well-known/assetlinks.jsonс именем пакета и SHA-256 отпечатком сертификата. Статус проверки показываетadb shell pm get-app-links <package>, повторную запускаетpm verify-app-links --re-verify. С Android 12 неверифицированная ссылка просто открывается в браузере; - iOS Universal Links: entitlement
applinks:домени файлapple-app-site-association, отданный по HTTPS без редиректов и с нужными путями. Apple забирает его через свой CDN, так что правка на сервере доезжает не сразу; - сам переход: ссылку в рассылке оборачивает трекинг, и она ведёт сначала на чужой домен с редиректом. Встроенные браузеры мессенджеров часто открывают страницу у себя;
- воспроизведение:
adb shell am start -a android.intent.action.VIEW -d "<url>", на iOS тап по ссылке из «Заметок», а не ввод в адресной строке.
В баге укажите платформу, источник перехода, точный URL и результат проверки файла ассоциации.
Где спотыкаются
Ищут ошибку в коде обработки ссылки. Если приложение даже не открылось, код до неё не дошёл: проблема в ассоциации домена или в самой ссылке.
Забывают про подпись. При Play App Signing в assetlinks.json нужен отпечаток ключа из Play Console, а debug-сборка подписана другим ключом и без своего отпечатка в файле проверку не пройдёт.
Проверяют Universal Link вводом адреса в Safari. Так iOS всегда открывает сайт, и это штатное поведение, а не баг.