Universal Links работает локально, но не из AppStore Apps - PullRequest
0 голосов
/ 29 августа 2018

После установки приложения вручную из xCode (с устройством, подключенным к MacBook) я могу щелкать письма со ссылкой на веб-приложение, и оно открывается в приложении cordova вместо веб-приложения ( как и ожидалось ).

Но когда я загружаю и устанавливаю приложение из AppStore или testFlight (с точно такой же базой кода), Универсальные ссылки игнорируются , а веб-приложение открывается.

Когда я наблюдаю за журналами Apache и вручную устанавливаю приложение, я получаю:

XX.XX.XX.XX - - [29/Aug/2018:14:32:33 +0000] "GET /.well-known/apple-app-site-association HTTP/1.1" 200 730 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"

Но при установке приложения из testFlight или AppStore нет запроса на этот файл.

Может ли кто-нибудь помочь мне найти хотя бы ключ к поиску ... Как включить UniversalLink для моего производственного приложения?

[EDIT] из ответа john316

Я распаковал сгенерированный IPA, открыл embedded.mobileprovision , и у меня было:

<key>Entitlements</key>
<dict>
    <key>keychain-access-groups</key>
    <array>
        <string>XXXX.*</string>     
    </array>
    <key>get-task-allow</key>
    <true/>
    <key>application-identifier</key>
    <string>XXXX.my.domain.com</string>
    <key>com.apple.developer.associated-domains</key>
    <string>*</string>
    <key>com.apple.developer.team-identifier</key>
    <string>XXXX</string>
    <key>aps-environment</key>
    <string>development</string>
</dict>

Связанные домены включены, но не должны ли они иметь массив строк со всеми моими applinks:domains?

Ответы [ 4 ]

0 голосов
/ 01 февраля 2019

Если вы используете Cordova / Ionic v3

Есть ошибка ...

Проверьте эти шаги:

Есть четыре процесса

1.app консоль

Идентификаторы приложений -> выберите идентификатор приложения → включены связанные домены -> готово Профиль обеспечения -> Изменить еще раз

  1. В Xcode

AppName -> общие <-> возможности -> связанные домены -> + ->

applinks: example.com

  1. на вашем сервере Загрузите файл apple-app-site-association в корневой каталог для http И. Хорошо известная папка для https

Ex - https://www.skyscanner.com/apple-app-site-association

Ex - https://www.skyscanner.com/.well-known/apple-app-site-association

Не добавляйте этот файл как json, оставьте как текст Бывший из apple-app-site-association

4. (Важно)

В папке проекта

(cordova) есть два файла: Проект -> Plateform -> IOS -> projectNameFolder ->

Entitlements-Debug.plist

Entitlements-Release.plist

Когда я добавляю значение applinks: example.com в Capabilities-> Associated domains-> Domains, Entitlements-Debug.plist получает строки:

 <key>com.apple.developer.associated-domains</key> <array>  
 <string>applinks:example.com</string> </array>

НО список Entitlements-Release.p не изменился. Чтобы решить эту проблему, я скопировал и вставил сгенерированные строки из Entitlements-Debug.plist. После этого я выполнил тот же процесс архивации и загрузки, что и раньше, и все работало нормально.

и используйте ionic-plugin-deeplinks для получения параметров и маршрутизации процесса Deeplink

....... Спасибо позже Сначала создайте свой проект

0 голосов
/ 11 сентября 2018

Пожалуйста, обратитесь по ссылке ниже.

Пожалуйста, следуйте инструкциям. Вы должны изменить идентификатор команды для производства

https://medium.com/@abhimuralidharan/universal-links-in-ios-79c4ee038272

0 голосов
/ 15 ноября 2018

Наконец я смог решить эту проблему:

Убедитесь, что Entitlements-Release.plist содержит правильные права. В моем случае только Entitlements-Debug.plist имели правильные права. Кроме того, когда вы экспортируете свое приложение на последнем шаге, вы обычно должны видеть сводную информацию о включенных правах, убедитесь, что com.apple.developer.associated-domains указан с соответствующей записью applinks.

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

enter image description here

источник: https://forums.developer.apple.com/message/334862

0 голосов
/ 11 сентября 2018

В моем опыте наблюдения различий, подобных тем, что вы описываете, в большинстве случаев это было связано с разницей в правах приложений для профилей разработчиков и распространения. Даже при том, что вы можете четко указать в настройках проекта своего приложения, что вам нужна определенная возможность (в данном случае флажок «Связанные домены»), XCode не может выдавать какую-либо ошибку во время процесса подписания (при экспорте приложения для распространения), если отсутствуют определенные права в профиле предоставления.

Они могут отсутствовать по двум причинам - возможно, они не были добавлены на портале developer.apple.com для этого профиля, или XCode не обновил файл профиля с этого портала. В последнем случае это помогает стереть старый профиль с вашего локального диска, чтобы заставить XCode повторно загрузить его.

Чтобы убедиться, что у вас действительно есть разрешение com.apple.developer.associated-domains в вашем дистрибутивном файле, вы можете разархивировать файл IPA и проверить наличие ключа com.apple.developer.associated-domains в разделе <key>Entitlements</key>, как указано здесь .

Еще один способ отладки - просмотр журналов устройств в консоли (Xcode-> Window-> Devices & Simulators-> Open Console) при запуске версии приложения AppStore / TestFlight. Вы можете найти строку журнала, которая выводится iOS, когда ссылка правильно указана в приложении для dev-версии приложения, и сравнить ее со случаем, когда происходит сбой. Обычно iOS жалуется на пропущенные права в журналах.

...