Для поддержки универсальных ссылок в macOS требуется поддержка как вашего приложения, так и вашего веб-сайта (и macOS 10.15+).
Дополнительные сведения см. в документации Apple Разрешение приложениям и веб-сайтам ссылаться на ваш контент ( статья посвящена глубоким ссылкам iOS, tvOS и macOS) и его подстатьям Включение универсальных ссылок, а также обработка универсальных ссылок.
Краткий обзор:
По сути, это то же самое, что и в iOS: вам нужно создать файл apple-app-site-association
, который будет размещен на вашем сервере либо в корневом каталоге, либо в каталоге .well-known
(описано в разделе "Включение универсальных ссылок", ссылка на который приведена выше). . Он описывает, какие пути URL-адресов могут быть переданы вашему приложению. Важно, чтобы этот файл был действительным JSON (подтвердите его!) и обслуживался через HTTPS с действительным сертификатом и без каких-либо перенаправлений!
Вам необходимо включить функцию «Связанные домены» в вашем профиле обеспечения. Детали зависят от того, управляет ли Xcode вашими профилями или нет. В вашем файле прав (обычно редактируемом на вкладке «Подписание и возможности» вашей цели в Xcode) вам нужно добавить соответствующий связанный домен, например applinks:my.domain.example
(без https://
или чего-то еще, просто необработанное доменное имя).
Затем вам нужно реализовать application(_:continue:restorationHandler:)
в своем делегате приложения для обработки универсальной ссылки. .
Может раздражать, когда macOS впервые выбирает ассоциацию во время разработки. Советы по отладке:
- Откройте
Console.app
и отфильтруйте swcd
, это демон, отвечающий за связанные веб-учетные данные и универсальные ссылки. Иногда вы видите подсказки, почему это не сработало (например, отказ от файла apple-app-site-association
).
- Также мне пришлось убить демона
swcd
, чтобы он перезапустился launchd
, а затем забрать изменения/исправления, которые я внес в файл apple-app-site-association
. И iOS, и macOS обычно должны перезагружать этот файл при «установке приложения»1 (более четко это не указано; я предполагаю, что они имеют в виду установки/обновления App Store, но я не знаю, когда это загружается для приложений macOS, распространяемых за пределами App Store).
- Кроме того, имейте в виду, что ввод универсальной ссылки в Safari не перейдет к вашему приложению: Apple заявила на форумах разработчиков2, что, по их мнению, если пользователь уже находится в среда браузера, в которой они хотят остаться, а не внезапно переходить в приложение. Поэтому, чтобы протестировать универсальную ссылку, откройте
Notes.app
, создайте новую заметку и введите/вставьте туда универсальную ссылку, которую хотите протестировать. Затем вы можете щелкнуть по нему, и вас спросят, хотите ли вы открыть это в своем приложении.
1) К сожалению, нет ссылки на форум разработчиков, где я это читал.
2) Опять же, извините, сейчас нет ссылки. По меньшей мере два раза видел это заявление сотрудников Apple, оба ссылались на трюк Notes
. Несмотря на то, что там говорили об iOS, такое же поведение и на macOS.
person
DarkDust
schedule
25.02.2020