IOS Apple Universal Links завершается случайным сбоем

#ios #swift #ios-universal-links #apple-app-site-associate

#iOS #swift #ios-universal-links #apple-app-site-associate

Вопрос:

У нас есть приложение, которое использует функциональность universal links и работает большую часть времени, но в некоторых случаях, особенно при новых установках и в случайных сценариях, когда пользователь нажимает на глубокую ссылку в электронном письме, мобильное приложение не открывается, и вместо него это делает веб-браузер. Приложение поддерживает iOS 12.2 и выше.

Наша настройка выглядит следующим образом:

  1. В настоящее время файл aasa размещен в папке .well-known и корневой папке на сервере, а тип содержимого — json.
  2. Файл имеет следующий формат:
 {
  "webcredentials": {
    "apps": [
      "TeamID.bundleId"
    ]
  },
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TeamID.bundleId",
        "paths": [
          "/reset-password/*",
          "/confirm-email/*"
        ]
      },
      {
        "appIDs": [
          "TeamID.bundleId"
        ],
        "components": [
          { "/": "/reset-password/*" },
          { "/": "/confirm-email/*" }
        ]
      }
    ]
  }
}
 
  1. Мы добавили соответствующий связанный домен в код проекта

Как я уже говорил ранее, в большинстве случаев это работает нормально, но в некоторых случайных случаях это не так. Я подозреваю, что файл aasa не может быть загружен в тех случаях, когда произошел сбой, но я не уверен в этом.

Кто-нибудь сталкивался с такой же проблемой? Любая помощь приветствуется.

Ответ №1:

Открытие универсальных ссылок — не очень простой процесс.

Во-первых, если это новая установка приложения и она еще не была открыта — система (iOS) не знает о том, что ваше приложение поддерживает UL — приложение должно быть запущено хотя бы один раз.

Следующий — решение пользователя (и системы) о том, как открывать ссылки, зависит от пользователя (и решения системы) — пользователь может получить вопрос об открытии UL через приложение — и решить не использовать эту опцию — он будет открыт в браузере, и теперь система всегда может открывать эти UL в браузере, и наоборот, еслипользователь открывает его с помощью приложения. После этого очень сложно изменить поведение.

Файл AASA загружается при запуске приложения, и, как я тестировал ранее, он сохраняется в системе до тех пор, пока не будет загружен (обновлен) следующий, поэтому, если иногда приложение не может быть загружено — ничего не изменилось (за исключением случаев, когда это был первый запуск и первая попытка загрузить файл aasa.

Некоторые проблемы могут возникнуть, если вы попытаетесь открыть некоторые ссылки, не представленные в файле aasa, но я думаю, что это не ваш случай.

В вашем файле aasa проблем нет.