Зачем нужны Universal Links

До появления Universal Links (iOS 9, 2015) для открытия приложения через ссылку использовались кастомные URI-схемы: myshop://product/12345. У этого подхода три проблемы: нет верификации (другое приложение может перехватить схему), нет фолбека (если приложение не установлено — ошибка), и на iOS 9+ Safari стал показывать диалог «Open in…» для URI-схем, что ухудшало UX.

Universal Links решают все три проблемы: ссылка выглядит как обычный URL (https://myshop.ru/product/12345), система верифицирует связь домена с приложением, а при отсутствии приложения — просто открывает браузер.

Как это работает технически

iOS (Universal Links):
1. Разработчик размещает apple-app-site-association (AASA) по адресу https://yourdomain.com/.well-known/apple-app-site-association — JSON-файл с App ID и путями.
2. В Xcode приложение получает entitlement Associated Domains → applinks:yourdomain.com.
3. При установке приложения iOS скачивает AASA и строит карту «этот домен + пути → это приложение».
4. При клике на ссылку iOS проверяет карту и открывает приложение, передавая URL.

Android (App Links):
Аналогично — через digital-asset-links.json на домене и autoVerify="true" в манифесте приложения.

E-commerce сценарии

Сценарий Без Universal Links С Universal Links
Email с товаром Открывается в браузере Открывается в приложении на карточке товара
QR-код в офлайн-магазине Браузер (приложение игнорируется) Приложение с контекстом товара
Push-уведомление по тапу URI-схема или браузер Прямо в нужный экран приложения
Реферальная ссылка Браузер Приложение + Attribution

Важно: Universal Links не работают при длинном нажатии (Long Press → Copy Link) и при переходе из JavaScript (window.location). Для надёжного роутинга используйте специализированные SDK (Branch, AppsFlyer, Firebase Dynamic Links).