UniversalLink не работает на устройствах iOS 14, но хорошо работает на симуляторе

#ios #swift #ios-universal-links #ios14

#iOS #быстрый #ios-universal-links #ios14 #swift

Вопрос:

Следующее решение может поддерживать universalLink на симуляторе.

У меня есть приложение, которое поддерживает UniversalLink. Пользователь, перейдя по поддерживаемым ссылкам на веб-сайте, перейдет к функциям приложения.

Но это не сработало на iOS 14 beta 4. Вместо того чтобы открывать приложение, оно открывает веб-страницу instread.

После исследования, как я могу видеть из приведенного здесь документа https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_associated-domains
введите описание изображения здесь

Необходимо обновить сервис.права на поддержку как iOS 13, так и iOS 14

 <Key>com.apple.developer.associated-domains</key>
  <array>
    <string>applinks:hosturl</string>
    <string>applinks:hosturl?mode=developer</string>
 </array>
  

Это хорошо работает на симуляторе.
Но я не могу заставить его работать на устройствах.
Любой может помочь этому.

Ответ №1:

Если вы хотите открыть приложение в среде разработки, вы должны:

Шаг 1: Укажите связанные домены

сервис: fully qualified_domain?режим = альтернативный режим

пример: applinks:YOUR_DOMAIN?mode=developer

Шаг 2: Включите разработку связанного домена на устройстве

На тестовом устройстве вам необходимо активировать соответствующий параметр разработки домена, который находится в: Настройка -> Разработчик

Настройки

Разработчик

Комментарии:

1. Я пытался понять это в течение нескольких часов. Спасибо

2. Я тоже пропустил включение связанного переключения домена в настройках разработчика., Спасибо!

Ответ №2:

Формат также изменился для устройств iOS14. Это означает, что apple-app-site-association должна находиться как в корневой папке вашего веб-сайта (для устройств до iOS9.3, если поддерживается), так и в папке .well-known.

<YOUR_URL>/apple-app-site-association
<YOUR_URL>/.известный/apple-app-site-association

Новый формат предназначен для поддержки устройств, выпущенных до iOS14, и устройств iOS14.

 {
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "<YOUR_APP_ID>",
        "components": [ // iOS14
          {
            "/": "<URL_PATH>",
            "comment": "Matches any URL whose path starts with URL_PATH and instructs the system not to open it as a universal link"
          }
        ],
        "paths": [ // pre iOS14
          "NOT /api/*",
          "NOT /",
          "<URL_PATH>"
        ]
      }
    ]
  }
}
  

дополнительная информация о:
https://developer.apple.com/documentation/safariservices/supporting_associated_domains

Комментарии:

1. Вам не нужно размещать его в обоих местах, если вы не поддерживаете устройства более ранних версий, чем iOS 9.3 (которых, я подозреваю, немного). Тогда Apple изменила расположение ассоциации по умолчанию на /.well-known/ , так что вы можете использовать один файл в хорошо известной папке и просто включить оба пути и компоненты. Смотрите: developer.apple.com/forums/thread/43342