Apple-приложение-сайт-ассоциация не работает

Я реализовал apple-app-site-association для глубокой связи с моим приложением iOS.
Я создал файл.JSON без расширения и поместил его в корневой каталог моего сайта.
Теперь я могу видеть файл как https://example.com/apple-app-site-association в любом браузере.

Ниже приведено тело json внутри файла apple-app-site-association -

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "AppID.bundleIdentifier",
                "paths": [ "*"]
            }
        ]
    }
}

К вашему сведению я добавил следующие внутри моего сайта (angular.js) .htaccess -

<FilesMatch "^apple-app-site-association$"> ForceType application/json </FilesMatch>

Я уже включил "Связанный домен" как в Xcode, так и на developer.apple.com.
Но когда я пытаюсь установить новую сборку, она не работает.
Копаясь в журнал устройства, я получаю следующую ошибку.

Пожалуйста, посмотрите и помогите мне в том, что я делаю неправильно.

[SWC] ### Плохая связь apple-app-site-site JSON: Ошибка Domain=NSCocoaErrorDomain Code=3840 "Текст JSON не начинался с массива или объекта и параметра, позволяющего не задавать фрагменты". UserInfo={NSDebugDescription= Текст JSON не начинался с массива или объекта и опции, позволяющей не устанавливать фрагменты.}

5 ответов

Лучший способ проверить, правильно ли настроен ваш файл, — это использовать

      curl -v https://app-site-association.cdn-apple.com/a/v1/yourdomain.com

или же

      curl -v https://app-site-association.cdn-apple.com/a/v1/sub.domain.com

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

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

Добавить .well-known/ на свой путь:

https://<fully qualified domain>/.well-known/apple-app-site-association

Из https://developer.apple.com/documentation/safariservices/supporting_associated_domains_in_your_app

Файл надлежащим образом размещен, что подтверждается с помощью:

curl -I https://pravin-dev.slicepay.in/apple-app-site-association

Вы также можете использовать Apple Applebot для сканирования вашего сайта для проверки ассоциации apple-app-site-site. Тем не менее, это только полная проверка, если ваше приложение работает.

Возможно, проблема не в вашем файле ассоциации. Вы должны убедиться, что ваше приложение действительно проверяет https://pravin-dev.slicepay.in/apple-app-site-association а не https://slicepay.in/apple-app-site-association. Дважды проверьте ссылки на приложения в разделе "Связанные домены" ваших возможностей, и файл.entitlements был создан правильно. Вы используете поддомен pravin-dev - если это не было указано, ваше приложение может не найти правильное местоположение.

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

Убедитесь, что возможности включают субдомен Подтвердить

У меня также было это; файл был правильно структурирован, он был доступен как с .well-known, так и без него, права были правильными...

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

Если ничего не помогло, попробуйте выключить и снова включить.

Похоже, что файл каким-то образом обслуживается сервером неправильного типа. Если вы попытаетесь загрузить рабочий файл AASA в веб-браузер ( https://branchmaps.app.link/apple-app-site-association), вы увидите, что он загружается немедленно, а полученный файл не имеет типа. Ваш файл отображается в браузере и при загрузке выходит с типом файла JSON.

Если вы сохраняете файл как apple-app-site-association.json а затем удалив расширение, попробуйте вместо этого сохранить его непосредственно из Atom/Sublime/what без имени файла, чтобы убедиться, что ОС не встраивает метаданные.

Вы также можете использовать бесплатную платформу глубоких ссылок, такую ​​как https://branch.io/ (полное раскрытие: я в команде Branch), и вам не нужно обрабатывать эту конфигурацию сервера:)

Другие вопросы по тегам