Перейти к содержанию

Приложения и домен deep links#

Карточка приложения#

Поле Обязательно Примечание
Название, иконка Название — да Иконку можно подтянуть из App Store по App Store ID или загрузить (PNG / JPEG / WebP до 1 МБ). Она показывается на промежуточной странице и в превью ссылок
Веб-фолбэк Да https://… — куда вести с десктопа и когда платформа не поддержана
MMP Да AppsFlyer, Adjust, AppMetrica, Firebase или «без MMP» — см. Шаблоны и MMP
iOS: bundle id, Team ID Если есть iOS Team ID — 10 символов A–Z, 0–9
iOS: App Store ID, URI-схема Нет App Store ID нужен для перехода в стор без MMP
Android: package name Если есть Android Например uz.brand.app
Android: SHA-256 отпечатки Нет Без отпечатка приложение не открывается по ссылке напрямую — см. ниже
Целевое событие, валюта выручки Нет Для CPA и пересчёта выручки в сводном отчёте

Нужна хотя бы одна платформа. Bundle id и package name уникальны в организации. Создавать и менять приложения могут владелец и администраторы.

У организации свой хост {slug}.diply.uz. diply сам отдаёт на нём файлы:

  • https://{slug}.diply.uz/.well-known/apple-app-site-association — для iOS, со всеми iOS-приложениями организации (TEAMID.bundleId);
  • https://{slug}.diply.uz/.well-known/assetlinks.json — для Android, со всеми Android-приложениями, у которых указан SHA-256 отпечаток.

Файлы открывают для приложения все пути хоста, кроме служебных /.well-known/* и /_diply/*, поэтому новые ссылки не требуют обновления файлов и сборки приложения.

Сертификат хоста

HTTPS-сертификат для {slug}.diply.uz выпускается автоматически в течение ~2 минут после активации организации. До этого браузер покажет ошибку сертификата на этом хосте.

Каждое приложение прописывает конкретный хост {slug}.diply.uz — не *.diply.uz (wildcard-домены Apple и Google читают файл с корневого домена, он не ваш).

iOS: Universal Links#

  1. В Xcode: Signing & Capabilities → + Capability → Associated Domains, добавьте applinks:{slug}.diply.uz. В entitlements это выглядит так:

    <key>com.apple.developer.associated-domains</key>
    <array>
        <string>applinks:{slug}.diply.uz</string>
    </array>
    
  2. Team ID — в Apple Developer: Account → Membership details → Team ID (10 символов). Он же — префикс App ID.

  3. Приложение получает URL ссылки в NSUserActivity.webpageURL (см. Ссылки для приложений).

Задержка CDN Apple

С iOS 14 устройства берут файл не с нашего сервера, а через CDN Apple. Новые данные доходят до 24 часов, устройства перепроверяют файл примерно раз в неделю; ускорить нельзя. Для отладки на своём устройстве можно включить режим разработчика Associated Domains (applinks:{slug}.diply.uz?mode=developer).

Android: App Links#

  1. В AndroidManifest.xml внутри нужной <activity>:

    <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" android:host="{slug}.diply.uz" />
    </intent-filter>
    
  2. Укажите в карточке приложения SHA-256 отпечаток сертификата подписи (см. ниже).

  3. Android 12+ проверяет каждый хост отдельно. Изменения файла подхватываются на Android 15+ за срок до 7 дней, на Android 14 и ниже — только при установке или обновлении приложения.

Android: где взять SHA-256#

Google Play Console → ваше приложение → Настройка → Целостность приложения → вкладка «Подпись приложений» → «Сертификат ключа подписи приложения» → SHA-256.

  • Если включена подпись приложений Google Play (Play App Signing) — а для новых приложений она обязательна, — нужен отпечаток ключа подписи Google («сертификат ключа подписи приложения»), а не ключа загрузки (upload key): приложение у пользователей подписано ключом Google.
  • Можно добавить несколько отпечатков (до 10): например, ещё ключ загрузки и debug-ключ для тестовых сборок. Двоеточия необязательны, регистр не важен.

Без SHA-256

Android-приложение можно сохранить без отпечатка. Тогда оно не попадает в assetlinks.json, и в кабинете (на странице «Домен» и в карточке приложения) видно предупреждение «Прямое открытие Android-приложения выключено — добавьте SHA-256 отпечаток». Ссылки при этом работают: пользователь Android попадает в Google Play или через ссылку MMP, клики считаются. Не работает только открытие уже установленного приложения по ссылке.

Проверка и статусы#

Статус Значит
Не настроен Нет iOS-приложений и нет Android-приложений с отпечатком SHA-256
Файлы опубликованы Наши файлы доступны
Видит CDN Apple / подтверждён Google Проверка нашла файл в CDN Apple (или Google подтвердил связь)
Работает Вы проверили на устройстве и нажали «Проверил на устройстве»

Кнопка «Проверить» (и автоматически раз в сутки) проверяет:

  1. наши файлы доступны по HTTPS без редиректа, в них нужные приложения;
  2. копию файла в CDN Apple — если CDN ещё не получил файл или недоступен, результат «Неизвестно», а не ошибка; расхождение — «Ошибка» с пояснением про задержку до 24 часов;
  3. Google Digital Asset Links — проверка выключена по умолчанию.

Что сборка приложения действительно содержит домен, снаружи проверить нельзя. Проверьте на устройстве: iOS — откройте https://{slug}.diply.uz/test из Заметок, должно открыться приложение; Android — adb shell pm get-app-links <package> показывает verified.

Изменение приложений, которое меняет файлы (bundle id, Team ID, package, отпечатки, удаление), сбрасывает результат проверки и подтверждение. Удаление приложения убирает его из файлов — ссылки в установленных сборках перестанут открывать приложение.