Universal Links открывают Safari? Исправьте это по повторяемому процессу
Если universal links или app links открывают браузер вместо приложения, чаще всего причина в дрейфе конфигурации, редиректах или несовпадении идентификаторов приложения. Ниже практичный чеклист для каждой кампании.
В этом материале
Почему это происходит
Universal link откроет приложение только при совпадении трех слоев: верификация домена, идентичность приложения и рантайм-маршрутизация. Большинство сбоев воспроизводимы и диагностируемы.
Типичная ошибка — считать, что если ссылка открылась в браузере, значит, приложение сломано. Часто проблема на уровне домена: редиректы, CDN/прокси или неверные параметры конфигурации.
Нажатие из источника клика
In-app браузер Instagram или TikTok, мобильные Safari или Chrome, десктоп
- 01
Верификация домена
/.well-known/apple-app-site-association · /.well-known/assetlinks.json
Что ломает: редирект, авторизация или bot-защита на стороне CDN, прокси или инструмента кампаний
- 02
Идентичность приложения
Team ID + bundle ID · имя пакета + отпечаток сертификата
Что ломает: идентификаторы, которые не совпадают со сборкой в сторе
- 03
Рантайм-маршрутизация
источник клика → решение об открытии приложения
Что ломает: in-app браузер или placement, который ведёт себя иначе
Приложение открывается
Все три слоя совпадают
Вместо него открывается Safari или Chrome
Часто с приложением всё в порядке, а с настройкой домена нет
Быстрая диагностика за 10 минут
- Проверьте домен в Universal Link Validator и зафиксируйте все ошибки.
- Проверьте association-файлы iOS и Android из публичной сети, а не только из внутренней.
- Убедитесь, что well-known пути не блокируются редиректом, авторизацией или bot-защитой.
- Сверьте идентификаторы с текущей production-сборкой приложения.
- Протестируйте клики из Instagram/TikTok in-app browser, мобильных Safari/Chrome и с десктопа, где ссылка должна вести на сайт.
Частые причины и исправления
| Причина | Симптом | Исправление |
|---|---|---|
| Association-файл отсутствует или недоступен | Все ссылки на платформе уходят в браузер | Проверьте, что `/.well-known/apple-app-site-association` и `/.well-known/assetlinks.json` отдают 200 без редиректов. |
| Некорректный content-type или поведение CDN | Файл есть, но верификация тихо падает | Отдавайте JSON по HTTPS и уберите трансформации, меняющие headers/body. |
| Идентификаторы не совпадают с релизной сборкой | В staging работает, в production нет | Сверьте Team ID + bundle ID (iOS) и package + cert fingerprint (Android). |
| Редирект-цепочка до финального URL | Часть кампаний работает, часть нет | Минимизируйте 301/302 и ведите сразу на финальный HTTPS-адрес. |
| Разное поведение in-app браузеров по placement | Bio-ссылка работает, ad-click — нет (или наоборот) | Тестируйте по каналу и placement, затем четко задайте, куда попадает пользователь, если приложение не открылось. |
Референс форматов файлов
apple-app-site-association (iOS)
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.com.example.app",
"paths": ["/promo/*", "/product/*"]
}
]
}
}assetlinks.json (Android)
[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints": ["AA:BB:CC:..."]
}
}
]QA-чеклист перед запуском
- AASA и assetlinks проходят валидацию без критичных ошибок.
- Хотя бы одно реальное iOS- и Android-устройство проходит тесты открытия приложения.
- Пользователи без приложения попадают в нужный магазин приложений или на сайт.
- UTM и кампанийные параметры не теряются в цепочке.
- Аналитика разделяет app open, store redirect и переходы на сайт.
Рекомендуемый workflow с инструментами
1. Validate
Проверьте домен через Universal Link Validator.
2. Fix
По приоритету исправьте headers, идентификаторы, редиректы и маршрут для пользователей без приложения.
3. Re-test
Повторите тесты на реальных устройствах и реальных каналах.
Если проблема выявлена во время активной кампании, сначала убедитесь, что каждый клик ведет в магазин приложений или на сайт, чтобы защитить конверсию, и параллельно закрывайте deep link-ошибки.
Часто задаваемые вопросы
Почему у части пользователей все работает, а у части нет?
Обычно из-за расхождений среды: версии приложения, версии ОС или конкретного in-app браузера. Проверяйте по сегментам.
Могут ли редиректы ломать universal links?
Да. Дополнительные редиректы часто приводят к ошибкам верификации и нестабильному runtime-поведению.
Достаточно ли тестировать только в симуляторах?
Нет. Симуляторы полезны для первичной проверки, но финальный verdict должен быть по реальным устройствам и реальным in-app браузерам.
Продолжить изучение
Коды ошибок Universal Links и App Links: что они значат
Разбираем SWCERR00101, SWCERR00301, legacy_failure и 1026: что означает каждая ошибка, где её увидеть и что исправить, чтобы Universal Links и App Links снова открывали приложение.
Universal Links на Shopify, Webflow, Wix и Squarespace: какие конструкторы сайтов позволяют разместить файл AASA
Если ссылки на ваше приложение открывают сайт, а не приложение, обычно это значит, что iOS и Android не нашли на вашем домене два небольших файла. Что позволяет разместить каждый конструктор сайтов в октябре 2026 года, обходной путь через поддомен, если ваш конструктор этого не умеет, и ссылка, которой файлы вообще не нужны.
Как встроенные браузеры обрабатывают диплинки: Instagram, TikTok, Facebook, Gmail, Telegram и другие
Из Safari ссылка открывает приложение, а внутри Instagram не работает. Разбираем, какой браузер использует каждое приложение, какие правила задают Apple, Google и Chrome и что с этим можно сделать.
Ищете другое? Посмотрите все темы в блоге.
Проверяйте ссылки до запуска каждой кампании
Прогоните домен через валидатор, исправьте проблемы по приоритету и запускайте кампании без сюрпризов.