ios: универсальные ссылки не работают на iOS 10

Я пытаюсь интегрировать универсальные ссылки в свое приложение для iOS. Поэтому всякий раз, когда кто-то нажимает на <myapp>.herokuapp.com/content, он перенаправляется прямо в приложение. Я подписался на это руководство по настройке. Я выполнил следующую настройку, но не могу заставить ее работать. Я также проверил другие потоки в stackoverflow, но ни один из них не решил проблему.

  • Добавлены связанные домены на вкладке «Возможности» в целевой папке моего приложения. Добавлены два домена: activitycontinuation:<myapp>.herokuapp.com и applinks:<myapp>.herokuapp.com.
  • На этапах сборки> Копировать ресурсы пакета добавлен файл .entitlements.
  • Получил teamId от https://developer.apple.com/account/#/membership
  • На моем веб-сайте добавлен маршрут для apple-app-site-association в https://<myapp>.herokuapp.com/apple-app-site-association, который возвращает следующий json:

    {
        "applinks": {
            "apps": [],
            "details": [
                {
                    "appID": "<teamId>.<bundleId>.dev",
                    "paths": [ "*" ]
                },
                {
                    "appID": "<teamId>.<bundleId>",
                    "paths": [ "*" ]
                }
            ]
        },
        "activitycontinuation": {
            "apps": [
                "<teamId>.<bundleId>.dev",
                "<teamId>.<bundleId>"
            ]
        }
    }
    
  • Установлено приложение из Xcode на iPhone 6s Plus (физическое устройство) с идентификатором пакета <bundleId>.dev и скопирована ссылка https://<myapp>.herokuapp.com/content на Notes, но оно открывается в Safari.


person meteors    schedule 26.02.2017    source источник


Ответы (3)


Исправлена ​​проблема. Проблема заключалась в том, что я тестировал конфигурацию Debug. Когда я попробовал с помощью сборки Release, все теперь работает нормально.

person meteors    schedule 01.03.2017
comment
как установить релизную сборку? Стоит ли установить какие-то настройки? - person Yestay Muratov; 16.08.2017
comment
В продукте Xcode ›Схема› Изменить схему. Вкладка «Выполнить» ›Конфигурация сборки› Выпуск. - person meteors; 16.08.2017
comment
У меня такая же ошибка. @meteors вы добавили свой домен, например www.domainename.com, или только domainename.com без www. ? Спасибо - person Julien Levallois; 06.07.2019
comment
@JulienLevallois Я добавил его как www.domainname.com. - person meteors; 07.07.2019
comment
@meteors, как ты тестировал? Работало ли это при нажатии на ссылку на электронную почту, ссылку для заметок или ссылку на сообщение? Моя ассоциация "яблоко-приложение-сайт" доступна, и приложения предоставляются правильно. Но это не работает. - person Jamshed Alam; 09.07.2019
comment
Да, я проверял с помощью приложения Notes. - person meteors; 10.07.2019

Есть довольно много проблем, которые могут помешать работе универсальных ссылок здесь.

Вот некоторые вещи, которые стоит перепроверить:

  • Правильно ли назван и подписан файл AASA?
  • Вы тестируете на физическом устройстве? (некоторые говорят, что универсальные ссылки теперь стабильно работают в симуляторе с iOS 10, но я бы все равно использовал физическое устройство)
  • Все ли ваше устройство и сертификаты обеспечения безошибочны?
  • Возможно, файл AASA не удалось обновить при первой установке / запуске приложения из-за проблемы с сетевым подключением (я обнаружил, что AASA не сможет загрузить, например, если Charles Proxy захватывает трафик)
  • При тестировании вы сначала вставляете ссылку в Notes, а затем нажимаете на нее долго? Вы видите пункт меню «Открыть в приложении»? Если это так, универсальное соединение работает правильно и только что было отключено на устройстве.

Я также рекомендую просмотреть сообщение в суперблоге Алекса Остена по этой теме, так как это может помочь вам определить проблему (здесь: https://blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9/).

В Branch есть ряд инструментов / ресурсов для выявления проблем универсального связывания. Они специально предназначены для использования со ссылками на ветви, но вы все равно можете найти их полезными:

person dwestgate    schedule 26.02.2017
comment
Привет @dwestgate! Я не подписывал файл AASA, потому что в нем упоминается, что подписанные файлы AASA требуются только в том случае, если вы поддерживаете менее iOS 9.0. Я обслуживаю файл с помощью Content-Type application / json. - Да тестирую на физическом устройстве. - Мой профиль подготовки кажется правильным, потому что я могу установить сборку релиза на свой iPhone. - Я не знаю, пытается ли яблоко загрузить файл AASA при установке приложения. Если да, то я попытаюсь захватить запрос с помощью Charles Proxy, но в настоящее время он у меня не запущен. - person meteors; 26.02.2017
comment
- Я установил приложение перед тем, как писать в Notes, и при долгом нажатии нет доступных опций Open App. - person meteors; 26.02.2017
comment
Ох, почему stackoverflow не поддерживает уценку в комментариях? - person meteors; 26.02.2017
comment
Я не уверен, где у вас есть подписанные файлы AASA, они требуются только в том случае, если вы поддерживаете информацию, меньшую, чем iOS 9.0, но это звучит совсем не так. Файлы AASA были введены для поддержки универсального связывания, а универсальное связывание было введено только в iOS 9. Нет сценария, когда вам понадобится AASA при использовании версии iOS до 9. Подпишите свой файл AASA. - person dwestgate; 27.02.2017
comment
Есть так много движущихся частей, что я также рекомендую тестировать конфигурации шаг за шагом. Возможно, создайте учетную запись Branch и настройте тестовое приложение для работы с Branch (например, github.com/BranchMetrics/ios-branch-deep-linking/tree/master/) - посмотрите, выглядит ли размещенный в филиале файл AASA и действует ли он так же, как ваш файл AASA. - person dwestgate; 27.02.2017
comment
В ссылке на документы Apple, по которой я перешел: developer.apple.com/library/content/documentation/. В разделе передачи веб-браузера в собственное приложение проверьте абзац после листинга 2-8 и примечание, в котором указывается отправка application / json для iOS 9 и выше. - person meteors; 27.02.2017
comment
Хорошо, я попробую создать приложение тестовой ветки с текущей конфигурацией. - person meteors; 27.02.2017

Вставьте свой домен в эту ссылку и убедитесь, что с ним нет проблем.

person DiegoQ    schedule 26.02.2017
comment
эта ссылка проверяет Content-Type как application/pkcs7-mime, тогда как для iOS 9 и выше она больше не требуется. - person meteors; 26.02.2017
comment
Значит, вы обслуживаете его с помощью Content-Type application / json? - person DiegoQ; 26.02.2017
comment
да. Здесь упоминается, что вы можете работать с Content-Type application / json: developer.apple.com/library/content/documentation/ - person meteors; 26.02.2017