Универсальные ссылки iOS не открываются в приложении

Поэтому я точно следовал этому руководству и использовал те же значения, что и предоставленные: https://blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9

Файл ассоциации Apple также готов в каталоге ссылок:
WEB_PAGE:PORT_NUMBER/apple-app-site-association

Кажется, все на этой стороне настроено.

Я добавил права, обновил профиль обеспечения и все настроено.

Когда я запускаю приложение на своем устройстве и открываю ссылку http://WEB_PAGE:PORT_NUMBER, всегда открывается Safari.

У меня даже есть точки останова в следующем методе:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler

Но пшик.

Кто-нибудь усовершенствовал это? Что-то мне не хватает?


person Legolas    schedule 23.09.2015    source источник
comment
оформить заказ здесь, чтобы не пропустить ни одного шага stackoverflow.com/questions/35609667/   -  person Vineet Choudhary    schedule 13.03.2016


Ответы (40)


Есть несколько возможных проблем.

  1. Попробуйте вставить свой домен в этот валидатор ссылок и убедитесь, что нет проблем: https://limitless-sierra-4673.herokuapp.com/ (кредит ShortStuffSushi - см. репо)

  2. iOS регистрирует сообщение об ошибке в системных журналах, если у вас неправильно настроен TLS в домене, указанном в ваших правах. Он хранится в журналах ОС, а не в журналах приложений. Сообщение об ошибке будет иметь вид Sep 21 14:27:01 Derricks-iPhone swcd[2044] <Notice>: 2015-09-21 02:27:01.878907 PM [SWC] ### Rejecting URL 'https://examplecustomdomain.com/apple-app-site-association' for auth method 'NSURLAuthenticationMethodServerTrust': -6754/0xFFFFE59E kAuthenticationErr. Сообщение об ошибке извлечено из здесь, быстрые (неполные) инструкции по использованию CloudFlare для TLS здесь.

  3. В моем личном тестировании щелчок / ввод ссылки в Safari ни разу не открывал приложение напрямую. Нажатие из других приложений (iMessage, Mail, Slack и т. Д.) работает. Другие сообщили, что нажатие на ссылки в результатах поиска Google открывало приложение напрямую.

  4. Обратите внимание, что если универсальная ссылка успешно открывает ваше приложение, а затем вы переходите к Safari (нажав свой сайт в правом верхнем углу панели навигации в приложении), то iOS перестает открывать приложение при посещении этого URL-адреса. . Затем в Safari вы можете потянуть вниз, чтобы открыть баннер вверху страницы с надписью «Открыть». Я потратил на это много времени. Обратите внимание, что переход на сайт => отключение UL кажется зависящим от пути, в зависимости от путей, указанных в apple-app- файл связи с сайтом. Итак, если у вас есть отдельные маршруты, yoursite.com/a/* и yoursite.com/b/*, если вы нажмете yoursite.com/a/*, и оно откроет ваше приложение напрямую, у вас будет возможность в правом верхнем углу приложения щелкнуть по yoursite.com/a/*. Если вы это сделаете, последующие посещения yoursite.com/a/* будут открываться в браузере, а не в приложении. Однако yoursite.com/b/* не должен быть затронут и по-прежнему открывать ваше приложение напрямую.

Сообщите мне, если вы обнаружите, в чем проблема. Мне лично очень любопытно, как работают универсальные ссылки и какие существуют крайние случаи. Удачи.

person st.derrick    schedule 24.09.2015
comment
Это отличный ответ. Мне нужно будет покопаться в ошибке. Спасибо за URL-адрес проверки ссылки. - person Legolas; 24.09.2015
comment
У меня есть универсальные ссылки, работающие для iMessage и Mail, но при попытке открыть из Slack или Twitter открываются ссылки в Safari. (Уберите SafariViewController и Twitter в виде веб-просмотра). Универсальные ссылки Twitter работают в Slack, iMessage и Mail, в то время как в другом приложении под названием Quip они работают в iMessage и Mail, но не в Slack (та же проблема, что и у нас). Любые идеи? - person Kazzin; 25.09.2015
comment
Я должен вернуться и тщательно протестировать между приложениями / браузерами, используя мое тестовое приложение. Я не уверен, почему Twitter будет работать в Slack, но для вашего приложения это не так. В связи с этим, одно приложение, которое я посоветовал, утверждает, что у них работает UL, и я вижу, что их файл ассоциации яблоко-приложение-сайт правильный, но я не могу получить ссылки для открытия их приложения напрямую даже в Mail и iMessage. Универсальные ссылки по-прежнему кажутся привередливыми. - person st.derrick; 25.09.2015
comment
Хм очень странно, они действительно кажутся довольно привередливыми. Спасибо за ваш вклад! - person Kazzin; 25.09.2015
comment
То же самое. Так странно. Иногда он открывает приложение напрямую, иногда открывает webView. Я бы хотел, чтобы они прояснили документацию. Эта функция работает неустойчиво - person Legolas; 25.09.2015
comment
Кто-нибудь знает, для чего нужен failed: -6756/0xFFFFE59C kTypeErr? Файл не имеет расширения и использует рельсы для send_file 'path/apple-app-site-association', type: "application/pkcs7-mime". Я ничего не могу найти об этой ошибке - person LyricalPanda; 25.09.2015
comment
Я видел эту ошибку, когда файл ассоциации яблочного приложения-сайта не обслуживается через HTTPS. - person st.derrick; 26.09.2015
comment
Нажатие из других приложений (iMessage, Mail, Slack и т. Д.) Сработало - оно также работает при нажатии из результатов поиска Google внутри safary (если оно ссылается на вашу страницу) - person IPv6; 15.10.2015
comment
Slack недавно переключился с использования SFSafariViewController (который не работал с универсальными ссылками) на открытие Safari / соблюдение универсальных ссылок. Похоже, их эксперимент с SFSafariViewController длился недолго - person st.derrick; 15.10.2015
comment
@Martin Я только что переместил информацию в исходный пост - хорошая идея - person st.derrick; 15.10.2015
comment
Что касается 1), вам больше не требуется подписывать файл ассоциации яблочного приложения-сайта, если вы обслуживаете его через https. - person Jeremy Hicks; 05.11.2015
comment
Если я ищу ошибку в системных журналах, я обычно обнаруживаю, что это / var / log / syslog в Debian / Ubuntu? - person Jeremy Hicks; 05.11.2015
comment
@ st.derrick Итак, если у вас есть отдельные маршруты, yoursite.com/a/* и yoursite.com/b/*, если вы нажмете yoursite.com/a/*, и он откроет ваше приложение напрямую, у вас будет возможность в в правом верхнем углу приложения, чтобы перейти на yoursite.com/a/*. Если вы это сделаете, последующие посещения yoursite.com/a/* будут открываться в браузере, а не в приложении. Однако yoursite.com/b/* не должен быть затронут и по-прежнему открывать ваше приложение напрямую, если вы уверены в этом. Судя по тому, что я тестировал, этого не происходит. Независимо от PATH, любой URL-адрес из этого домена, похоже, ведет в Интернет, а не в приложение. - person bhasker_kottapally; 05.11.2015
comment
@ st.derrick - Относительно вашего пункта 3: в моем личном тестировании нажатие / ввод ссылки в Safari ни разу не открывал приложение напрямую. Пожалуйста, проверьте мой ответ. Я была такая же проблема. Но я понял, что UL не работает должным образом из того же домена. Я проверил несколько устройств iOS 9. Некоторые старые устройства могли запускать приложение из того же домена. Но некоторые устройства никогда не запускали приложение при нажатии на ссылку, только пункт контекстного меню «Открыть в [Ваше приложение]», который появляется при долгом нажатии на ссылку, будет работать в сафари, когда домен такой же. - person Nikhil Mathew; 05.11.2015
comment
Приведенная выше ссылка не может проверить ваш ipa, если вы создадите и перетащите его в itunes, а затем выньте из него ipa. Вы должны правильно заархивировать свою сборку, и она будет работать. - person Ankit Srivastava; 16.12.2015
comment
Также может помочь перезагрузка устройства iOS. Я трижды проверил все настройки и конфигурацию и был абсолютно уверен, что все правильно, но все равно не сработало. Затем я попытался использовать другое устройство, и оно отлично сработало. Затем я удалил приложение с исходного устройства, перезапустил устройство и переустановил приложение, после чего оно просто сработало ... - person mathz; 10.02.2016
comment
Как вернуться в приложение вместо сафари, если кто-то случайно нажал ссылку на сайт в правом углу приложения? - person iEngineer; 29.04.2016
comment
Баннер «Открыть в приложении» у меня нигде не появлялся. После долгого поиска вот решение: введите любую ссылку на свой сайт в приложении Notes (это универсальная ссылка). Теперь нажмите "Готово". Как только она станет ссылкой, нажмите и удерживайте ее и выберите Открыть в приложении ИМЯ-ЗДЕСЬ! - person kishorer747; 20.07.2016
comment
Как исправить проблему 4 в вашем ответе программистом, а не пользователем? Могу ли я отключить верхнюю правую кнопку сафари, когда универсальная ссылка открывает мое приложение? - person Gon; 01.08.2016
comment
У меня это не сработало при работе на симуляторе iOS, но отлично работало при работе на реальном устройстве. - person Josh Sklar; 08.09.2016
comment
спасибо, что потратили это время и выяснили, в чем проблема :) при раскрытии обнаружилось открытое в баннере ... приложения. - person Joris Weimar; 30.11.2016
comment
@ st.derrick Спасибо за сообщение. Кроме того, у меня все еще такая же проблема. Проблема в том, что перенаправление на Safari почти сверхурочно. Я использую службу Firebase и создаю общую ссылку для Android и iOS. Для Android такая же ссылка работала идеально. Любые предложения по вопросу !! - person CoDe; 03.04.2017
comment
Мое приложение открывается при нажатии на UL, но делегат continueuseractivity никогда не вызывается, кто-нибудь поможет мне, пожалуйста? - person BharathBob; 15.03.2018
comment
единственное, что сработало для меня, это «открыть в сафари», я потратил на это часы - person Hanane; 10.05.2018
comment
@ st.derrick, допустим, у вашего приложения два представления (A и B). Можно ли открыть представление A, если щелкнуть yoursite.com/a/*, и открыть представление B, если щелкнуть yoursite.com/b/*? - person kk-dev11; 06.06.2018
comment
У меня проблема с: // URL-адрес символов удалить специальные символы - person Ryan110; 08.07.2018
comment
У меня была такая же проблема, и перезагрузка устройства решила ее. Спасибо! - person NYS; 01.02.2019
comment
Кто-нибудь заставил работать отлично? Вопрос 1) Мы помещаем файл aasa в хорошо известный каталог. Он доступен с помощью домена / apple-app-site-association или domain.com/.well-known/apple-app-site-association. Какой из них правильный? Вопрос 2) Обязателен ли сертификат SSL? Сейчас мы работаем над dev сервером. В почтовом приложении я щелкнул URL-адрес связанного домена. Это не работает. Мой файл aasa: {приложения: {приложения: [], подробности: [{appID: Prefix.appbundleID, пути: [*, /]}]}} - person Jamshed Alam; 28.03.2019
comment
@iEngineer Force нажмите ссылку и нажмите Открыть в [#APPNAME] - person Josh Wolff; 17.09.2019
comment
@DFedor поднимает хороший вопрос: не нужно было подписывать файл ассоциации яблочного приложения-сайта: это просто текст, и он работает, если обслуживается по HTTPS. Ссылка, использованная для «проверки» моего файла в №1, гласит: «Ваш файл должен обслуживаться с типом содержимого application / pkcs7-mime». Но я был уверен, что мой файл обслуживается правильно, потому что, помимо изменения имени домена, настройки и все остальное были такими же, как я успешно использовал ранее. Без каких-либо изменений, я просто перезапустил свой телефон, и ссылка открылась в приложении. - person Josh Wolff; 17.09.2019
comment
Ваши ссылки 404'ed @ st.derrick, можно ли обновить? - person CyberMew; 25.02.2020
comment
Не работает, когда я нажимаю URL-адрес из браузера, и он работает, когда я нажимаю URL-адрес из мессенджера или WhatsApp. - person Pramod Tapaniya; 09.01.2021

Есть много причин, по которым это может пойти не так. Два момента вызвали у меня проблемы:

  • В Xcode, когда вы добавляете право на связанные домены, каждая запись должна начинаться с applinks:, а затем с вашего доменного имени. Например. applinks:www.apple.com.

  • Хотя Xcode создал для меня файл прав, он не вошел в мою сборку: мне пришлось щелкнуть это поле вручную.

И да, после этого не нужно было подписывать apple-app-site-association файл: это простой текст, и он работает, пока обслуживается по HTTPS. (Однако вам все равно нужно будет подписать его, если вы поддерживаете iOS 8.)

person DFedor    schedule 23.10.2015
comment
Мне также пришлось полностью удалить приложение с тестового устройства, а затем снова собрать и запустить его, прежде чем оно наконец заработало. - person Phil Andrews; 22.12.2015
comment
вы спасаете меня, это была моя проблема, хотя XCode создал для меня файл прав, он не был включен в мою сборку: мне пришлось щелкнуть это поле вручную. - person cham; 20.01.2016
comment
Та же проблема, мне пришлось добавить файл прав в сборку И удалить приложение на устройстве. - person user361526; 06.06.2016
comment
Включение файла прав в сборку также устранило проблему для меня. Стоит отметить, что в Xcode 8 флажки целевого членства в File Inspector фактически отключены. Мне пришлось перейти к настройкам сборки и добавить файл прав на этапе копирования ресурсов. - person Charles A.; 21.09.2016
comment
@cham: не могли бы вы уточнить, хотя XCode создал для меня файл прав, он не вошел в мою сборку: мне пришлось щелкнуть это поле вручную. - person Thang Pham; 08.07.2017
comment
Может быть проблема, что мое приложение связывается с веб-сайтом через http НЕ https? - person anitteb; 18.12.2017
comment
как @cham спросил о том, что XCode создал для меня файл прав, он не был включен в мою сборку: мне пришлось щелкнуть это поле вручную. на какое поле нужно было нажать. Где? - person Awais Fayyaz; 09.04.2018
comment
@AwaisFayyaz Перейти к этапам сборки ›Копировать ресурсы пакета. Щелкните значок плюса и добавьте файл прав. - person s.zainulabideen; 01.09.2018
comment
Спасибо! Моя проблема в том, что права не копируются. - person Egist Li; 12.10.2018
comment
Я был совершенно слеп к тому факту, что Xcode по умолчанию использует веб-учетные данные: для связанных доменов, а не для приложений :. Это был первый ответ, который заставил меня перепроверить, что у меня было в моих правах. - person rob5408; 22.04.2019
comment
Applinks: префикс - вот что решило эту проблему для меня. Добавив мой префикс, моя запись о возможностях связанных доменов будет выглядеть так: applinks: mysubdomain.mydomain.com - person FranticRock; 13.08.2019
comment
Не работает, когда я нажимаю URL-адрес из браузера, и он работает, когда я нажимаю URL-адрес из мессенджера или WhatsApp. Помогите, пожалуйста - person Pramod Tapaniya; 09.01.2021

Чтобы помочь в устранении этой проблемы, при установке приложения выполните поиск «swcd» в выводе консоли вашего устройства, чтобы узнать, сработала ли регистрация универсальной ссылки.

  1. Используйте реальное устройство, а не симулятор.
  2. Удалите приложение со своего устройства.
  3. Подключите устройство к компьютеру и просмотрите вывод консоли устройства в xcode. (окно -> устройства -> [ваше устройство] -> открыть консоль). Держите это окно открытым.
  4. Установите приложение и дайте ему запуститься.
  5. Отфильтруйте вывод консоли на "swcd". Если все прошло успешно, вы увидите что-то вроде следующего скриншота. Если не получится, вы увидите что-нибудь еще. Если вы ничего не видите, значит, вы испортили что-то фундаментальное, например, добавив право на связанные домены.

Ссылка на приложение успешно добавлена

person mpoisot    schedule 02.11.2016
comment
Отличный совет! Я добавлял https: // к приложению: право, а также указывал полный путь, который я хотел прослушать, что было обеими ошибками. Я указывал example.com/path *, где должен указывать только мой домен.com и файл AASA at example.com затем указывает путь к идентификатору пакета моего приложения - person Numan Tariq; 05.02.2019
comment
Могу я перевести вам денежный бонус? Я потратил 2 дня на прохождение каждого этапа этой долбанной настройки универсальной ссылки, ничего не помогало, пока я не попробовал ваш подход. Мне очень не повезло разместить свой файл ассоциации в корневой папке firebase для моего домена, и оказалось, что Apple сначала запрашивает подкаталог .well-known /, и firebase, похоже, отвечает на него своим собственным (!) Правильным файлом ассоциации, который не имеет связанного приложения. Гошш, как я должен это узнать, Apple? - person nalexn; 16.07.2019
comment
Аааа отличная подсказка! Я не знал об этой консоли устройства, просто смотрел на вывод консоли Xcode. Моя проблема заключалась в том, что 2 из 3 доменов deeplink работали, но не последний. И там, в консоли, я увидел, что для моего последнего домена я неправильно написал его с помощью appllinks: ‹domain› (2 L's) Ой ... в любом случае, еще раз спасибо за отличный способ проверить, действительно ли зарегистрированы универсальные ссылки! (Я нашел журналы консоли также Удаление ссылок при удалении приложения: +1) - person Arno Teigseth; 02.05.2020
comment
он должен быть таким подробным по умолчанию? Потому что я не получаю такой подробный журнал .. Означает ли это, что операция не удалась? - person Nicholas Allio; 15.05.2020
comment
нет фильтрации swcd, я все еще вижу много не связанных строк - person luky; 15.09.2020
comment
Как вы узнали, что такое swcd? Из любопытства. - person Evgeny Karkan; 22.07.2021
comment
@EvgenyKarkan, честно говоря, это было так давно, я не помню. Я, конечно, еще не знал о swcd, прежде чем начал пытаться в этом разобраться. Я, должно быть, наткнулся на это, возможно, на этот точный вопрос SO, и выяснил процесс, упрощающий фильтрацию, поскольку мне приходилось делать это вручную много раз. - person mpoisot; 22.07.2021

Очевидно, есть ошибка в документации для создания файла ассоциации для универсальных ссылок .

Где написано:

Значение ключа appID - это идентификатор команды приложения и идентификатор пакета.

он должен сказать

Значение ключа appID - это префикс приложения и идентификатор пакета.

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

Чтобы узнать это значение, откройте Центр участников на https://developer.apple.com и просмотрите «Сертификаты, идентификаторы и профили», нажмите «Идентификаторы», затем «Идентификаторы приложений» в таблице под «Идентификаторами». Найдите свое приложение и используйте в нем значение префикса и идентификатор пакета, чтобы создать свой идентификатор приложения для файла ассоциации.

person Curtis Brian Halbrook    schedule 05.02.2016
comment
+1, это мне очень помогло. Потратьте полдня, выясняя, почему это не сработало, и мне показалось, что это именно так - person Ivo Beckers; 17.02.2016
comment
вы спасли мне день, на самом деле мое приложение было давным-давно, а префикс приложения отличается от идентификатора команды. - person Ti3t; 10.09.2017
comment
это единственное, что у меня работает. благодарю вас! - person dhin; 15.02.2019
comment
Это было для меня решением. Отличный совет. - person vincenth; 18.12.2019

Ответ Санктдеррика является информативным.

Но чтобы снова включить универсальные ссылки для открытия в приложении вместо сафари, нам нужно сделать следующее.

  • Нажмите и удерживайте универсальную ссылку в почте или iMessage, после чего вы увидите варианты открытия в сафари или в приложении.
person Praveen    schedule 27.10.2015
comment
Нет опции app, только копировать, открывать, добавлять в список для чтения и т. Д. - person iEngineer; 28.04.2016
comment
Почти сошел с ума, отлаживая эту проблему, но ЭТО было решением или мной. Может быть, если он настроен неправильно и приложение Mail открывает ссылку в сафари, оно всегда открывается в сафари? Понятия не имею, но однажды я сделал долгое нажатие - ›открыть в" myapp "... и теперь ссылки открываются правильно! - person Herbert Poul; 09.07.2016
comment
Большое спасибо за это решение. Я застрял в этом почти сутки. Ты спас мне день. - person andrew; 14.11.2016

Для проверки apple-app-site-association на стороне сервера вы можете использовать официальный валидатор Apple.

https://search.developer.apple.com/appsearch-validation-tool/

person Devy    schedule 18.12.2015

Я понял, что проблема для меня заключалась в том, что ссылки на корневой каталог a (например, http://example.com/) не открывали мое приложение, но если я добавил путь (например, http://example.com/mypath), он работал. Добавление "/" в список путей привело к следующему:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "TEAM_ID.BundleIdentifier",
                "paths": [ "*", "/" ]
            }
        ]
    }
}

Как ответил slutsker в этой ветке форумов разработчиков Apple.

person tidbeck    schedule 14.10.2015

Быстрые шаги, чтобы проверить, правильно ли вы внедрили Universal Link.

  • Нажмите и удерживайте ссылку, по которой вы ожидаете запустить приложение. Вы должны увидеть «Открыть в [название вашего приложения]» в контекстном меню.

  • Откройте приложение Notes, введите ссылку, по которой вы хотите открыть приложение. Коснитесь Готово. Ссылка станет желтой, и нажатие на нее должно открывать ваше приложение, а не Safari.

  • Если ссылка http://yourDomain.com не запускает приложение, попробуйте http://yourDomain.com/yourFolder/

  • В Safari, если в контекстном меню в Safari отображается «Открыть в [название вашего приложения]», но нажатие на ссылку открывает ссылку в самом Safari вместо запуска приложения,

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

    б. Если приложение по-прежнему не запускается после шага а., Попробуйте отправить ссылку на веб-почту, такую ​​как gmail, откройте сайт веб-почты в Safari и попробуйте щелкнуть ссылку. Если это работает, возможно, вы пытались запустить приложение из того же домена, что и ссылка. Из того, что я видел, запуск приложения из того же домена в большинстве случаев не выполняется. Вероятно, safari не будет проверять, является ли целевой URL универсальной ссылкой, когда ссылка находится в том же домене, в котором находится пользователь. Поэтому попробуйте запустить приложение из другого домена.

person Nikhil Mathew    schedule 05.11.2015
comment
Вот и все, мы занимаемся этой проблемой несколько часов, ЗАПУСК ПРИЛОЖЕНИЯ ИЗ ОДНОГО ДОМЕНА В большинстве случаев дает сбой. Спасибо :) - person maledr53; 23.01.2018

Для тех, кому нужно легко протестировать открытие (универсальных) ссылок, вы также можете открыть ссылку в своем симуляторе из терминала с помощью этой команды:

xcrun simctl openurl booted yourapp_or_http://yourlink

Например:

xcrun simctl openurl booted https://www.google.com

person morksinaanab    schedule 20.12.2017
comment
У меня нет этого для работы, он всегда просто открывает Safari. Однако они работают, когда я работаю на реальном устройстве. Любые идеи будут оценены, так как отладка / разработка без симулятора немного болезненнее. - person chib; 28.11.2018
comment
это стоит спасибо - person iPhone 7; 26.05.2021

Также очень важно увеличить версию проекта или номер сборки после интеграции универсальных ссылок. Даже если вы удалите / переустановите, iOS не получит ссылки, пока вы не обновите версию.

person Kyle Truscott    schedule 27.05.2016
comment
Этот! Версия пакета была именно тем, что привело к сбою моего тестирования, потому что я бы выполнил все приведенные выше советы, и мои ссылки все равно запускали бы Safari, поскольку iOS использует кешированный результат из предыдущей версии apple-app-site-association с неправильным префиксом appId - person zai chang; 23.10.2016
comment
Кайл, я думаю, что люблю тебя! Этот ответ спасёт день, спасибо! - person neiker; 04.02.2017
comment
Это был секретный соус для меня! Спасибо Спасибо спасибо! - person nurider; 16.04.2017

  • Универсальные ссылки не будут работать, если вы вставите ссылку в поле URL-адреса браузера.

  • Универсальные ссылки работают с управляемым пользователем <a href="..."> элементом, нажав между доменами. Пример: если на google.com есть универсальная ссылка, указывающая на bnc.lt, приложение откроется.

  • Универсальные ссылки не будут работать, если <a href="..."> элемент, управляемый пользователем, нажмет в том же домене. Пример: если на google.com есть универсальная ссылка, указывающая на другую универсальную ссылку на google.com, приложение не откроется.

  • Универсальные ссылки не могут быть активированы через Javascript (в window.onload или через вызов .click () для элемента <a>), если это не является частью действия пользователя.

источник: https://dev.branch.io/getting-started/universal-app-links/support/ios/#appsbrowsers-that-support-universal-links

На то, чтобы разобраться с третьей пулей, у меня ушло около дня.

person guido    schedule 07.10.2016
comment
3-я пуля, такая же здесь: потрачено много часов на выяснение этого. У Apple есть даже красивое, очень глупое объяснение: iOS уважает наиболее вероятные намерения пользователя и открывает ссылку в Safari, смотрите сами здесь. - person jox; 21.06.2017
comment
3-я пуля ТОП! - person Byteros; 01.04.2020
comment
3-й пункт должен быть правильным ответом! Я потратил на это 4 часа. Спасибо - person Rotem; 12.11.2020

Если люди здесь ищут другие решения, мы составили целую пошаговую инструкцию по отладке универсальных ссылок, так как мы видели множество всплывающих проблем, вызывающих МНОГО головных болей.

Проверить это:

Универсальные ссылки Руководство по отладке

«Предварительный

Если вы просто хотите настроить Universal Links в свежем виде, это руководство действительно вам пригодится:

Руководство по настройке глубинных ссылок iOS

Надеюсь, они будут полезны!

person Chris Maddern    schedule 22.05.2016
comment
Очень полезно, спасибо! У меня сработало при работе на реальном устройстве, но не на iOS Simulator. - person Josh Sklar; 08.09.2016
comment
Ссылки больше не действительны. Изображение - единственное, что теперь может пригодиться. - person App Dev Guy; 08.06.2021

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

Несмотря на то, что Apple явно не заявляет об этом, файл apple-app-site-association должен обслуживаться по https, даже если он подписан. Сертификат, используемый для https, также должен быть доверенным для Apple. Таким образом, хотя сертификат, добавленный к устройству в разделе «Настройки» -> «Общие» -> «Профили», разрешит использование https в сафари, он не позволит универсальным ссылкам работать.

В журналах устройства при ошибке аутентификации между устройством и сервером будет напечатано значение типа "TrustResultValue" : 4. TrustResultValue из 5 означает, что сертификат предназначен для неправильного домена (например, test.com обслуживается с www.test.com). TrustResultValue из 4 означает, что сертификат не является доверенным для этого использования.

Здесь могут быть полезные шаги для отладки . Раздел «Тестирование доступа к ассоциации приложения-приложения-сайта-приложения» представляет собой пошаговое руководство, позволяющее убедиться, что устройство получает файл apple-app-site-association. Шаги сводятся к следующему:

  1. Удалите приложение. Это необходимо, поскольку файл загружается при установке.

  2. Остановить сервер от правильного обслуживания apple-app-site-association.

  3. В xcode откройте Window -> Devices, а затем выберите свое устройство.

  4. Откройте журналы устройства, щелкнув треугольник в нижней части окна.

  5. Очистите журналы, щелкнув корзину, чтобы очистить все предыдущие журналы, которые могут быть связаны.

  6. Переустановите приложение с помощью xcode, нажав кнопку воспроизведения.

  7. После запуска приложения, если устройство правильно запрашивает файл, журналы устройства должны содержать ошибку, которую можно найти, выполнив поиск по запросу «apple-app-site-association».

Если файл apple-app-site-association обслуживается правильно (шаг 2 пропущен), то ошибки быть не должно. Вместо этого может отображаться ошибка аутентификации, если это проблема.

person Sam    schedule 05.07.2016
comment
Я выполнял спуфинг SSL с помощью Charles Proxy, и это привело к значению доверия 4. Когда я отключил прокси, это удалось. - person Ben Flynn; 06.07.2016

Мы добавили файл apple-app-site-association в это место:

https://example.com/apple-app-site-association

На iOS 9 все работало нормально, но на iOS 10 не работало.

Оказалось, что проблема связана с хорошо известным путем:

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

Из-за https://example.com/.well-known/apple-app-site-association путь перенаправлен на https://example.com

<Notice>: Allowing redirect 'https://example.com/.well-known/apple-app-site-association' -> 'https://example.com/'
<Notice>: ### Rejecting AASA file size 154466 for URL https://example.com/.well-known/apple-app-site-association

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

person Andrey Banshchikov    schedule 05.10.2016
comment
В руководстве четко сказано, что файл должен быть доступен через HTTPS - без каких-либо перенаправлений. - person eonil; 13.11.2016
comment
В руководстве также четко указано, что для приложений, работающих в iOS 9.3.1 и более поздних версиях, размер несжатого файла ассоциации «приложение-приложение-сайт-яблоко» не должен превышать 128 КБ, независимо от того, подписан ли файл. Это файл 154 КБ. - person Roberto; 03.03.2017
comment
В iOS11 ваш сервер должен явно возвращать статус 404 для: example.com/.well -known / apple-app-site-association, тогда swcd использует откат к корневому каталогу: пример .com / apple-app-site-association. Вы можете быстро проверить возвращенный статус HTTP с помощью таких инструментов, как Postman - person Max Odnovolyk; 26.10.2017
comment
Это решило мою проблему - person Vishwas Singh; 13.07.2021

Наиболее частая причина - это когда пользователь нажимает вверху справа, тем самым говоря iOS НЕ открывать приложение (в данном случае Uber) в будущем.

Чтобы исправить это, потяните вниз, чтобы открыть смарт-баннер, и нажмите ОТКРЫТЬ:

Потяните вниз в Safari и снова ОТКРОЙТЕ

Впоследствии он будет «помнить» об открытии приложения.

person samwize    schedule 26.09.2016

Мне удалось заставить его работать, но на это потребовалось немало времени и усилий. Обратите внимание, что если вы не подпишите apple-app-site-association файл (подписание необязательно!), Нажатие на ссылку в Safari не откроет ваше приложение (это привело к у меня сильно болит голова).

person Attila Bardos    schedule 29.10.2015
comment
Это любопытно. Apple заявляет в docs, что для чистых универсальных ссылок и использования в iOS9 вам не нужно подписывать. Только если вы хотите поддерживать iOS 8 Handoff / Shared Web Credentials, вам нужно будет подписать. Интересно! У меня такая же проблема, поэтому я попробую подписать. - person wrtsprt; 19.11.2015
comment
Подписание действительно необязательно. Нажатие на ссылку в Mobile Safari для запуска открытия собственного приложения iOS называется передачей из веб-браузера в собственное приложение, и в этом случае вам нужно будет добавить свойство activitycontinuation в apple-app-site-association файл json. developer.apple.com/library/ios/documentation/UserExperience/ - person Devy; 18.12.2015

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

(Настройки> Учетные записи> Просмотреть подробности> Загрузить все)

person ken    schedule 09.02.2016

Вы можете протестировать универсальные ссылки в симуляторе

Из Руководства по программированию поиска приложений: поддержка универсальных ссылок

person holmesal    schedule 18.02.2016
comment
Есть у кого-нибудь универсальные ссылки для работы в симуляторе? Я пробовал бесчисленное количество раз, и это никогда не срабатывает. Тем не менее, он работает с использованием реального устройства с теми же потоками. - person Tony; 28.06.2016
comment
Я тоже не смог это проверить. Попытки заставить Safari активировать универсальные ссылки в симуляторе оказались тщетными, несмотря на то, что он правильно работает на физическом устройстве. - person Albert Bori; 07.07.2016
comment
Мне тоже не удалось заставить их работать в симуляторе. @AlbertBori, у тебя это сработало? - person chib; 28.11.2018
comment
Я почти уверен, что они не работают в симуляторе. Я знаком со всеми остальными подводными камнями, и я никогда не смогу заставить их работать в симуляторе .. - person Fattie; 01.08.2019

Через два дня у меня выяснилось, что эти ссылки (из ветки)

приложения: xxxx.app.link

работать только после Архивации (тоже Ad-hoc) приложения и установки на телефон.

person Bence Pattogato    schedule 04.09.2017

Если вы размещаете свой apple-app-site-association в Firebase, обязательно поместите его в /.well-known/ подкаталог! Похоже, что Xcode сначала запрашивает этот URL, и в случае успеха не пытается запросить apple-app-site-association в корневом каталоге. По какой-то причине инженеры firebase заставили размещенные веб-сайты автоматически отвечать на /.well-known/apple-app-site-association пустым (но правильно сформированным) файлом ассоциации, который переопределяет ваш собственный, и вы не понимаете, почему ничего не работает!

person nalexn    schedule 16.07.2019
comment
Наконец-то! Большое спасибо. Это где-то написано? Firebase должна где-то документироваться. - person Berkay Turancı; 19.07.2019

Для ios13 появился новый формат - посмотрите здесь https://developer.apple.com/documentation/safariservices/supporting_associated_domains_in_your_app?language=objc

Я обновил свой файл, чтобы он выглядел так:

 {
  "applinks": {
    "apps": [],
    "details": [
        {
          "appIDs": ["1234.app.company.appname"],
          "appID": "1234.app.company.appname",
          "components": [
            {
              "/": "/login"
            }
         ],
           "paths": [ "/login" ]
        }
    ]
  },
  "webcredentials": {
    "apps": ["1234.app.company.appname"]
  }
}
person Anita    schedule 27.02.2020
comment
вам нужно добавить "exclude": true к components объекту, чтобы comment было истинным - person skornos; 20.05.2020
comment
после этого универсальная ссылка работает? - person Surjeet Rajput; 03.12.2020
comment
@SurjeetRajput Я обновил свой ответ, я скопировал файл из одного из своих производственных проектов. Это работает для меня. - person Anita; 03.12.2020

Перейдите на developer.apple.com и отредактируйте один из ваших профилей распространения. На странице редактирования вы можете открыть всплывающее окно для идентификаторов приложений, в котором будет отображаться список имен ваших приложений, а в круглых скобках () после имени приложения оно показывает все ваши реальные Идентификаторы приложений. В некоторых приложениях в качестве префикса может быть указан идентификатор вашей группы, а в некоторых нет. Убедитесь, что вы используете именно то, что вы видите во всплывающем меню внутри (), и поместите его в поле appID с данными о привязке яблока-приложения-сайта. У меня была именно такая проблема с приложением и его универсальными ссылками.

person MacMark    schedule 17.03.2016

Проблема для меня оказалась в файле apple-app-site-association. Согласно документации Apple, требуется только параметрappinks. Я добавил параметр activitycontinuation, и он заработал.

{
  "activitycontinuation": {
    "apps": [
      "9JA89QQLNQ.com.apple.wwdc"
    ]
  },
  "applinks": {
    "apps": [],
    "details": [{
        "appID": "9JA89QQLNQ.com.apple.wwdc",
        "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*" ]
      }]
  }
}
person Chris    schedule 19.05.2016
comment
3 года спустя, и мы нашли именно эту проблему. Добавление activitycontinuation - вот что исправило это для нас. - person readyornot; 04.06.2019

Я действительно не видел ту же самую комбинацию проблема / решение, которая заставила его работать для меня, так что можно добавить мое, если у кого-то такая же проблема!

Для своего приложения я использую настраиваемую схему URL-адресов (установленную в APP_TARGET > Info > URL Types) и устанавливаю схему URL-адресов отсюда в консоли Firebase, чтобы она соответствовала, но все еще не работала.

На самом деле моя проблема заключалась в двух проблемах:

Будьте осторожны, если установлен флажок "Автоматически управлять подпиской"

Если вы проверяете параметр Xcode «Автоматически управлять подписью», как и я, поскольку я просто пытался создать быстрое демонстрационное приложение, вам нужно убедиться, что используемый TeamID совпадает с идентификатором в вашей консоли Firebase. Первоначально я зашел в свою учетную запись разработчика Apple и скопировал идентификатор команды со своей страницы членства, но позже увидел, что фактический идентификатор, используемый Xcode, был другим. (Вы можете найти это в APP_TARGET > General > Signing > Signing Certificate. Для меня это выглядело как iPhone Developer: My Name (TEAM_ID)).

Префикс вашего TeamID к вашему Bundle Identifier в типах URL

После того, как я убедился, что они совпадают в моей консоли Firebase и Xcode, моей следующей проблемой стал идентификатор для моей схемы URL. Обычно здесь используется идентификатор вашего пакета, но Firebase фактически добавляет ему идентификатор группы, который вы указали в консоли Firebase, поэтому мне также пришлось добавить его к идентификатору в разделе типов URL-адресов в Xcode.

После этих двух исправлений и повторной загрузки файла GoogleService-Info.plist у меня не было проблем с открытием моих динамических ссылок.

person Kyle H    schedule 09.12.2016

После двух дней полного отчаяния, думаю, я наконец исправил это. Вот мое решение:

Кажется, что старые приложения используют другой префикс приложения, чем новые приложения. В новых приложениях для этой цели используется только идентификатор группы. Если префикс приложения и идентификатор группы не идентичны, похоже, вам нужно указать поле продолжения активности в файле ассоциации сайта приложения Apple:

{
    "activitycontinuation": {
        "apps": [
            "YOUR_APP_PREFIX.de.company.app"
        ]
   },
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "YOUR_APP_PREFIX.de.company.app",
        "paths": ["/*"]
      }
    ]
  }
} 

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

person Sebastian Boldt    schedule 14.11.2018
comment
Для приложений, созданных после 2011 года, префикс идентификатора приложения является идентификатором вашей группы. Однако для приложений, созданных в 2011 году или ранее, могут быть разные префиксы идентификаторов приложений. - person Jakub S.; 09.12.2020

Для меня моя ошибка заключалась в том, что наш сайт перенаправляет www.domain.com на domain.com, поэтому из-за этого все www.domain.com/* не сработают. Надеюсь, это поможет.

person wzhang84    schedule 16.08.2016

Для будущих читателей, которые найдут эту страницу ...

У меня была похожая ситуация. Однако в моей ситуации iOS10 работала в режиме AOK, и что бы я ни делал (увеличивать номера сборок, удалять / переустанавливать и т. Д.), IOS9, казалось, отказывалась работать.

Я пришел к этому с iOS10, и мне нужно было поддерживать iOS9. В то время документация здесь - https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html - четко указано, что файл может быть размещен в корне веб-сервера (например, /apple-app-site-association) или в. известная папка (например, /.well-known/apple-app-site-association). Поскольку я также поддерживаю Android, который также использует хорошо известную папку для аналогичного файла, я решил поместить туда оба.

При новой установке на iOS10 он явно запрашивает корневой файл, терпит неудачу, затем запрашивает хорошо известный файл и завершается успешно.

Для iOS9 он явно запросил корневой файл, не работает и больше ничего не делает.

Решение: если вы поддерживаете iOS9, поместите файл по адресу /apple-app-site-association.

person greymouser    schedule 02.08.2017

Мне удалось протестировать универсальные ссылки в симуляторе iOS с помощью приложения «Календарь».

Я только что создал событие и добавил URL-адрес, который хотел протестировать, в поле события URL. Затем при просмотре созданного события вы можете просто нажать на URL-ссылку, и ваше приложение должно открыться.

person Tiago Alves    schedule 25.10.2017
comment
Похоже, у меня это не работает, я все перепробовал, чтобы заставить их работать в симуляторе, но безрезультатно. Они нормально работают на реальном устройстве, но не идеальны для разработки / отладки. Я пробовал долго нажимать ссылку, но нет опции «Открыть в приложении». - person chib; 28.11.2018

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

Удаление / повторная установка приложения тоже не сработало.

person tanner burton    schedule 12.11.2019

Для меня после реализации всех ответов сверху и тестирования того, что файл AASA действительно загружается с ответом mpoisot, моя проблема заключалась в том, что в Xcode я добавил связанный домен как:

applinks:example.com

и в своем приложении для заметок я пытался использовать:

Https://example.com

потому что мой AASA не подписан, и я хотел убедиться, что обслуживаю его через HTTPS. Так что это сработало, когда в моем приложении для заметок я попытался использовать:

example.com

Он работает для меня на физическом устройстве с использованием iOS 12.1.2 либо со сборкой разработки из Xcode, либо со сборкой распространения из Testflight.

person Jorge Duque    schedule 21.12.2018

В моем случае мне нужно было заставить сервер обслуживать файл apple-app-site-association, используя тип содержимого: application/pkcs7-mime. В nginx я использовал такой подход:

location ~ /.well-known/apple-app-site-association {
         default_type application/pkcs7-mime;
 }

Как предлагали другие, я также должен был убедиться, что я:

Обратите внимание, что я никогда не видел сообщений об успешном выполнении в приложении консоли, как показано на снимках экрана другого пользователя. В консоли я все время получал Entry [...] needs its JSON updated because the app PI changed, но это не было проблемой.

Также обратите внимание, что при попытке открыть apple-app-site-association в браузере файл загружается, а не отображается, но в моем случае это не было проблемой.

И, как всегда, используйте реальное устройство, переустанавливайте приложение всякий раз, когда вы что-то меняете, возможно также перезапустите устройство и, возможно, увеличьте номер версии приложения.

person Nikolay Suvandzhiev    schedule 22.01.2021

В моем случае моя ошибка заключалась в том, чтобы поместить параметры запроса в пути:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "TEAM_ID.BundleIdentifier",
                "paths": [ "/auth-ui/hub?target=confirm&*" ]
            }
        ]
    }
}

когда я удаляю '? target = confirm & *' из путей, он начинает работать

person Vins    schedule 17.09.2018

В моем случае запрос файла AASA по адресу: https://example.com/apple-app-site-association

Перенаправлялся на: https://www.example.com/apple-app-site-association

Кикер - это отлично работает на iOS 11, но не работает на iOS 9.3.5. Поймите.

Решение: файл apple-app-site-association НЕ ДОЛЖЕН находиться за перенаправлением 302 или 301 для iOS 9. (Честно говоря, это отмечено на страница устранения неполадок UL.)

person Jeff Ward    schedule 26.09.2018

Еще сделаю заметки по устранению неполадок.

По сути, у нас есть 2 части, которые должны быть связаны вместе: 1) веб-сайт и 2) приложение для iOS.

  1. Для веб-сайта возникла только одна проблема: тип MIME для apple-app-site-association файла не был application/json.

    Кроме того, Инструмент проверки API не помогал нам, для test сред это было говоря

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

но в конце концов веб-сайт был в порядке.

Мы проверили веб-логи, увидели GET-запрос к apple-app-site-association файлу и решили перейти на приложение для iOS.

  1. Для настройки приложения iOS хорошо иметь запущенное Console приложение с фильтрацией для отображения только swcd процесса, как уже упоминалось в этой теме.

В нашем случае проблема заключалась в том, что мы полагаемся на URL с подстановочными знаками в форме: applinks:*.prod_site_name.com, полагая, что * будет охватывать все добавляемые тестовые среды, например https://test_env.num4.prod_site_name.com, но это не работает. Консоль показывала:

Запущен запрос для домена '* .prod_site_name.com', URL 'https://prod_site_name.com/.well-known/apple-app-site-association '

Таким образом, в нашем случае исправление заключалось в предоставлении специальных ссылок на приложения для тестовой цели приложения, например: applinks:test_env.num4.prod_site_name.com

person IVtrue    schedule 05.06.2019

Надеюсь, это кому-то поможет, потому что на это у меня ушло около двух дней.

Нам пришлось добавить www. к нашему associated-domains в нашем .entitlements файле.

        <string>applinks:www.yourdomain.com</string>
        <string>activitycontinuation:www.yourdomain.com</string>

Потому что, если мы использовали yourdomain.com вместо www.yourdomain.com, наши серверы выполняли перенаправление -> 304, а затем не включали content-type: application/json для apple-app-site-association file.

Примечание. универсальные ссылки по-прежнему работают для yourdomain.com и www.yourdomain.com

person SparkyRobinson    schedule 19.06.2019

В моем случае причиной был недопустимый JSON.

Оно не использовало, но », потому что я скопировал это из какой-то статьи, а эксперт, автор статьи, поставил это с такими знаками, и я скопировал это с него.

Кстати, на целевом сайте все равно нет информационного окна, например, вы можете открыть его с помощью приложения, но если я нажимаю ссылку, например, из приложения Notes, приложение открывается.

неправильный:

{
    “applinks”: {
        “apps”: [],
        “details”: [
            {
                “appID”: “T5TQ36Q2SQ.com.reddit.production”,
                “paths”: [“*”],
            }
        ]
    }
}

хороший:

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "T5TQ36Q2SQ.com.reddit.production",
                "paths": ["*"],
            }
        ]
    }
}
person luky    schedule 15.09.2020

В моем случае это не просыпалось, потому что у меня было 2 предмета в

<plist version="1.0">
<dict>
    <key>aps-environment</key>
    <string>development</string>
    <key>com.apple.developer.associated-domains</key>
    <array>
        <string>applinks:urlOne</string>
        <string>applinks:urlTwo</string>
    </array>
</dict>
</plist>

когда я уменьшаю массив до одного элемента, он начинает работать.

person Jakub S.    schedule 09.12.2020

Появился новый формат файла - проверьте эту ссылку: https://developer.apple.com/documentation/safariservices/supporting_associated_domains_in_your_app?language=objc

Я обновил свой файл так:

"applinks": {
        "apps": [],
        "details": [
            {
                "appID": "APP_ID_PREFIX.BUNDLE_ID",
                "paths": [
                    "*"
                ]
            }
        ]
    },
    "webcredentials": {
        "apps": [
            "APP_ID_PREFIX.BUNDLE_ID"
        ]
    }
}

Примечание. В симуляторе он не работает, но на устройстве работает отлично.

person Sagar Sukode    schedule 24.02.2021

Иногда я обнаруживаю, что с файлом ассоциации все в порядке, но iOS решает всегда открывать универсальную ссылку в Safari. Чтобы проверить, распознает ли приложение ссылку на приложение, я добавляю URL-адрес в заметки или запись календаря, а затем нажимаю ее и удерживаю, чтобы появилось контекстное меню. Если написано "Открыть в {ВАШЕМ ПРИЛОЖЕНИИ}", значит, ссылка работает, но iOS решает открыть ее в Safari. Нажав «Открыть» в {ВАШЕМ ПРИЛОЖЕНИИ}, iOS с этого момента будет открывать действительные универсальные ссылки через ваше приложение.

person Ste Prescott    schedule 14.07.2021

Я не видел, чтобы кто-то предлагал решение для Flask.

Это сработало для меня.

РЕДАКТИРОВАТЬ: после двух голосов против, я хотел бы уточнить, что через несколько месяцев я все еще использую это точное решение. Он действительно работает, но есть и другие причины, по которым он может не работать сразу для вашего приложения. Это включает в себя то, что вам придется удалить приложение и даже несколько раз перезагрузить телефон. В конце концов, он связывает. Не знаю, почему это так сложно, но это решение действительно работает. Так что продолжайте попытки, и если у вас есть какие-либо проблемы, не стесняйтесь их комментировать, чтобы я мог попытаться помочь.

Если вы используете Flask, поместите ассоциацию «яблоко-приложение-сайт» в свою статическую папку, а затем добавьте ее в свой файл application.py.

@application.route('/apple-app-site-association', methods=['GET'])
def apple_app_site_association():
    return application.send_static_file('apple-app-site-association')
person Josh Wolff    schedule 22.08.2019
comment
Голосующий против, объясните, почему вы проголосовали против, чтобы мы могли улучшить ответ, если он неточный. - person Josh Wolff; 18.12.2019