2016-05-18 2 views
9

В приложении iOS Я работаю над настройкой Universal Links. Приложение содержит несколько доменов. Некоторые домены, которые я установил с шаблоном. Эти домены, похоже, не работают. Например, я хочу ссылаться на https://news.mydomain.com/. Если добавить следующие строки в список связанных доменов:Универсальные ссылки iOS с подстановочными знаками не работают

applinks:*.mydomain.com -> Не работает

applinks:news.mydomain.com -> отлично работает

Так что я считаю, что я сделал настроить все правильно, яблоко-приложение Файл-site-association настроен нормально. Я даже вижу в обоих случаях (используя Charles Proxy) файл apple-app-site-association получил доступ к окну.

В случае шаблона ссылка открывается только в Safari.

Когда я настраиваю домен без подстановочного знака, приложение открывается.

Я что-то упустил? Я запускаю iOS 9.3.2 на устройстве, и я запускаю Xcode 7.3.1, которые сегодня являются последними версиями.

+0

Согласно [документации Apple] (https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html), это _is_ правильный синтаксис. Возможно, есть ошибка в новой версии –

ответ

2

кажется, что добавление уайлдкарда в доменной части applinks имеет только был введен в iOS 9.3 Beta 2. В 9.3 Beta 2 примечания к выпуску:

Вы можете теперь использовать Универсальный Links с произвольными поддоменами вместо , которым нужно перечислить все субдомены приложения в качестве полностью квалифицированного домена имен. Записи имеют форму:

: [: номер порта], в котором находится "webcredentials", "activitycontinuation" или "applinks".

Теперь часть записи может быть с префиксом «*.», Чтобы указать поддомен подстановки. Например:

applinks: *. Example.com

Вы говорите, что вы бежите на iOS 9.3.2. Но ваш deployment target> = iOS 9.3? Если это не так: попробуйте изменить его. Я думаю, это решит вашу проблему.

Here you can found a copy of this release notes (извините, у меня нет какого-либо другой общественного источник)

Edit:

Даже если Apple Doc говорит, что вы можете использовать подстановочные знаки на доменах, they seems to have an issue on this:

Чтобы сопоставить все поддомены связанного домена, вы можете указать шаблон путем префикса .до начала определенного домена (требуется период). Согласование доменов основано на самой длинной подстроке в записях приложений. Например, если вы укажете записей, используйте: .mywebsite.com и applinks: *. Users.mywebsite.com, сопоставление для домена emily.users.mywebsite.com выполняется с более длинным * .users.mywebsite .com. Обратите внимание, что запись для * .mywebsite.com не соответствует mywebsite.com из-за периода после звездочки. Чтобы включить сопоставление для * .mywebsite.com и mywebsite.com, вам необходимо предоставить отдельную запись для каждого приложения.

+0

Привет, спасибо. К сожалению, изменение цели развертывания не изменило ситуацию. – Bocaxica

+3

Хм, это будет хорошо известная проблема:/http://www.openradar.me/21387804 –

1

Я пробовал это в сентябре 2016 года, используя как iOS 9.3.5, так и iOS 10 beta. Ситуация не изменилась: универсальные ссылки все еще не работают, если приложения содержат только подстановочные домены, хотя в документации предполагается, что это должно работать.

+0

Что-нибудь изменилось? Я столкнулся с этой проблемой, связанной с ссылками на wild card. Я устанавливаю цель развертывания на min iOS 10.0. –

+0

Да, ссылки на подстановочные ссылки iOS на самом деле отлично работают в эти дни. – Jaanus

8

я добавил свои выводы эту тему: https://forums.developer.apple.com/thread/47315

Короче говоря, даже в ИО 10, кажется, что подстановочная установка требует, чтобы файл apple-app-site-association обслужит корень Подстановочного в.

Например, если вы хотите использовать *.domain.com, то apple-app-site-association потребности быть размещен на обоих, например, app1.domain.com и domain.com, иначе он не будет работать с простым указанием applinks:*.domain.com в Xcode.

Это прискорбно, если ваш основной сайт размещен на www.domain.com, и что у вас есть 301 редирект на domain.com (который перенаправляет вас www.domain.com), потому что универсальные ссылки не позволяют переадресовывает.

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

  • app.domain.com (должен служить apple-app-site-association файл)
  • server1.app.domain.com (должен служить apple-app-site-association)
  • server2.app.domain.com (...)

Таким образом, в Xcode, вы можете указать только applinks:*.app.domain.com и Universal Links будут работать без необходимости указывать server1.app.domain.com, server2.app.domain.com и т. д. ... в Xcode.

Обратите внимание, однако, что вы также должны указывать applinks:app.domain.com, если вы планируете использовать этот сервер вместе с вашим приложением.

Надеюсь, это поможет.

Смежные вопросы