← Назад в блог

Полное руководство по Universal Links

Все, что нужно знать о universal links, deep links и app links для iOS и Android

10 октября 202512 мин чтенияТуториал

Как работают Universal Links

Процесс включает три ключевых компонента:

1

Файл Apple App Site Association (AASA)

JSON-файл на вашем домене по пути /.well-known/apple-app-site-association, который сообщает iOS, какие приложения могут обрабатывать ваш домен.

2

Конфигурация приложения

Приложение должно быть настроено на обработку определенных доменов и URL-шаблонов через entitlements (iOS) или intent filters (Android).

3

Код обработки URL

Приложение должно принимать deep link URL и открывать нужный экран или контент.

Реализация Universal Links на iOS

Шаг 1: Создайте AASA-файл

Создайте файл с именем apple-app-site-association (без расширения) со следующей структурой: apple-app-site-association

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID.com.yourcompany.yourapp",
        "paths": [
          "/products/*",
          "/articles/*",
          "/user/*"
        ]
      }
    ]
  }
}
⚠️

Важно

Файл должен раздаваться по HTTPS с валидным SSL-сертификатом и возвращать заголовок Content-Type: application/json.

Шаг 2: Настройте iOS-приложение

В Xcode добавьте capability Associated Domains с вашим доменом:

applinks:yourdomain.com
applinks:www.yourdomain.com

Шаг 3: Обработайте URL в приложении

// AppDelegate.swift
func application(_ application: UIApplication,
                 continue userActivity: NSUserActivity,
                 restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
    
    guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
          let url = userActivity.webpageURL else {
        return false
    }
    
    // Handle the URL and navigate to appropriate screen
    handleUniversalLink(url)
    return true
}

Реализация App Links на Android

Шаг 1: Создайте assetlinks.json

Разместите этот файл по адресу https://yourdomain.com/.well-known/assetlinks.json:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.yourcompany.yourapp",
    "sha256_cert_fingerprints": [
      "XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX"
    ]
  }
}]

Шаг 2: Обновите AndroidManifest.xml

<activity android:name=".MainActivity">
    <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" />
        <data android:host="yourdomain.com" />
        <data android:pathPrefix="/products" />
    </intent-filter>
</activity>

Шаг 3: Обработайте Intent

// MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    
    val action = intent.action
    val data = intent.data
    
    if (Intent.ACTION_VIEW == action && data != null) {
        // Handle the deep link
        handleDeepLink(data)
    }
}

Лучшие практики и частые ошибки

Что делать

  • Всегда используйте HTTPS для домена
  • Тестируйте на реальных устройствах, а не только в симуляторах
  • Настройте fallback URL для веб-пользователей
  • Добавьте полноценную аналитику
  • Корректно обрабатывайте edge cases
  • Поддерживайте AASA/assetlinks файлы в актуальном состоянии

Чего не делать

  • Не используйте редиректы для AASA/assetlinks файлов
  • Не забывайте валидировать JSON-синтаксис
  • Не хардкодьте логику навигации в приложении
  • Не предполагаете, что приложение всегда установлено
  • Не пропускайте тестирование на разных версиях ОС

Тестирование и отладка

Тестирование iOS

  • 1. Используйте валидатор AASA
  • 2. Тестируйте ссылки в Notes, Messages или Mail
  • 3. Проверяйте логи в Xcode Console
  • 4. Проверьте привязку домена в Settings → Developer

Тестирование Android

  • 1. Используйте adb shell am start -a android.intent.action.VIEW -d "your-url"
  • 2. Тестируйте в Chrome, Gmail и мессенджерах
  • 3. Проверьте статус верификации через adb shell dumpsys package domain-preferred-apps
  • 4. Мониторьте ошибки в logcat

Аналитика и атрибуция

Правильная аналитика критична для понимания эффективности universal links. Отслеживайте эти ключевые метрики:

  • CTR из разных каналов
  • Доля открытий приложения vs web fallback
  • Стоимость привлечения по каналам
  • Конверсия deep-linked контента
  • Время до первого действия после deep link
  • Производительность по платформам (iOS vs Android)

Совет

Используйте smart link платформу вроде Appy для автоматической обработки universal links, аналитики и fallback-логики. Это экономит недели разработки и дает enterprise-grade инфраструктуру.

Попробовать Appy бесплатно

Вывод

Universal links — важная часть современных мобильных приложений. Они дают бесшовный UX, улучшают атрибуцию и надежно работают на разных платформах. Хотя внедрение требует внимания к деталям, преимущества в UX и аналитике стоят усилий.

Начните с базовой реализации, тщательно протестируйте и улучшайте решение по данным реальной эксплуатации. А если хотите избежать сложности — используйте Appy, который берет это на себя автоматически.

Полезные ресурсы Appy

Изучите инструменты Appy для universal links, deep links и QR-кодов, чтобы ускорить рост мобильного приложения.

Продолжить изучение

Гайд
8 окт. 2025 г.
8 мин чтения

Deep linking vs Universal Links: полное сравнение

Разберитесь в ключевых отличиях deep links и universal links, когда использовать каждый подход и как их внедрять.

deep linking
universal links
comparison
mobile apps
Читать статью
Траблшутинг
7 мар. 2026 г.
11 мин чтения

Universal Links открывают Safari? Исправьте AASA, App Links, редиректы и headers

Практичный troubleshooting-процесс для исправления universal links и app links, открывающих браузер вместо приложения.

universal links
app links
aasa
assetlinks
Читать статью
Миграция
5 окт. 2025 г.
7 мин чтения

Закрытие Firebase Dynamic Links: руководство по миграции на Appy

Firebase Dynamic Links закрывается. Вот полное руководство по миграции на Appy с нулевым простоем.

firebase
dynamic links
migration
deep linking
Читать статью

Ищете другое? Посмотрите все темы в блоге Appy.

Без лишней сложности. Используйте Appy.

Appy автоматически обрабатывает universal links, deep links, QR-коды и аналитику. Без кода.

Полное руководство по Universal Links для iOS и Android · Appy