Вы или ваши пользователи могли заметить, что клики по ссылкам больше не ведут в приложение, хотя вроде бы настройку Universal Links никто не менял и она давно работала как часы. Вероятно, ваш сайт открывается только из определенного спектра IP адресов и проблема кроется именно в этом.

Данная статья поможет вам разобраться с этой проблемой, а так же будет полезна для тех, кто администрирует приватные сайты, доступные только из под VPN.

Что случилось?

Многие российские компании приняли решение ограничить доступ к своим интернет ресурсам только для российских пользователей. Решение могло приниматься быстро, поэтому многие могли забыть про Universal Links.

Раньше, до выхода iOS 14 схема работы Universal Links выглядела следующим образом:

При клике по ссылке девайс пользователя сам обращался на ваш сайт, чтобы проверить наличие и конфигурацию файла Apple App Site Association, после чего, в случае соответствии ссылки заданным условиям, происходил переход в приложение.

Начиная с iOS 14 схема работы немного изменилась:

При клике на ссылку девайс обращается к Apple CDN, которая примерно раз в сутки проверяет изменения AASA файла на сайте, после чего возвращает результат запрашивающему девайсу; тот, в свою очередь, решает, открывать ли какое-то приложение или открывать Safari.

Можно предположить, что Apple стремились упростить нам жизнь, ведь, например, первичное добавление функционала Universal Links после релиза в AppStore ранее многократно увеличивало нагрузку на серверы, так как каждый обновившийся пользователь делал собственный запрос за файлом AASA. Однако именно этот функционал мешает работе UL для приватных или ограниченных сайтов.

Что делать?

Думаю, после прочитанного решение напрашивается само собой. Стоит открыть доступ для внешнего интернета к адресам:

  • http://example.com/apple-app-site-association

  • http://example.com/.well-known/apple-app-site-association

После чего в течение некоторого времени Apple CDN проиндексирует ваш ресурс и Universal Links снова станут доступны!

Комментарии (4)


  1. Expany
    09.06.2022 11:04
    +3

    То есть, вся суета вокруг Universal Links в статье ограничена исключительно устройствами и "экосистемой" Apple, а так же, вертится вокруг ресурса, который самостоятельно закрыл доступ к себе и своим ресурсам из вне (из-за рубежа, или только в пределах %имя_страны%), и в целом, как гайд\материал\совет уместно только для узкого круга таких же индивидов, так?


    1. K0styan
      09.06.2022 11:23

      У меня на прошлом продукте было полмиллиона человек ежемесячно. Из них тысяч 200 - на iOS. На момент моего ухода мы ещё не довели до ума интеграцию онлайн-продаж в апп, но для моего преемника проблема более чем актуальна - даже если битая ссылка приведёт к отказу от продолжения покупки только у 10% пользователей, выручка на миллионы может упасть.


      1. Expany
        09.06.2022 19:08

        Вопрос интеграции UL идет несколько в разрез с вопросом закрытия входящего трафика по условному гео, у ряда параноиков, в виду последних событий(как внутри России, так и за рубежом). Кейс не представлен в виде инструкции по интеграции или фикса для типовых проектов, а явно описан для случаев, когда конечный ресурс явно блокирует внешние обращения, в т.ч. от Apple. Нет?


  1. Yuribtr
    09.06.2022 14:21

    Кстати подобная ситуация касается ещё и например картинок, которые хостятся на сервере с защитой от доступа извне (блок или капча). Если такую ссылку вставить в HTML тег img письма в качестве оформления (например логотип компании), то во встроенных почтовых клиентах MacOS и iPhone данная картинка не будет показываться, даже если вы внутри РФ.

    Все дело вот в этих кеширующих серверах Apple, которые за вас заранее скачивают картинку, чтобы вы не «светили» свой IP и время открытия письма. Ну а эти кеширующие сервера находятся естественно за границей.

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