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

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

Ниже приведено тело json внутри файла ассоциации яблочного приложения-сайта.

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

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

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

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

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

[SWC] ### Неверная ассоциация яблока-приложения-сайта JSON: Error Domain = NSCocoaErrorDomain Code = 3840 «Текст JSON не начинается с массива или объекта, и опция разрешения фрагментов не установлена». UserInfo = {NSDebugDescription = Текст JSON не начинается с массива или объекта, и опция разрешения фрагментов не установлена.}


person onCompletion    schedule 07.10.2016    source источник
comment
Хм, этот код json я получил от самого сайта developer.apple.com. Так как же это возможно? .. ?? .. Если вы так думаете, пожалуйста, дайте мне исправленный код, если он вас устраивает .. !!!   -  person onCompletion    schedule 07.10.2016
comment
@EricAya Я только что сделал это. Скопировано с веб-сайта Apple и помещено в пустой возвышенный текстовый файл и сохранено как файл ассоциации приложения-приложения-сайта-приложения. До сих пор не понимаю, почему не работает. У вас есть идеи о том, как отлаживать json для правильного форматирования .. ??   -  person onCompletion    schedule 07.10.2016
comment
@EricAya Теперь я последовал твоему трюку. Я проверил json на jsonlint.com, и он отображается как действительный JSON, но возникает та же проблема. Довольно запутался в том, что происходит .. !!   -  person onCompletion    schedule 07.10.2016
comment
Можем ли мы увидеть настоящий живой файл в месте его производства? К вашему сведению, там нет конфиденциальной информации - делиться ею безопасно и не представляет угрозы для безопасности.   -  person Alex Bauer    schedule 07.10.2016


Ответы (4)


Добавьте .well-known/ к своему пути:

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

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

person Chase    schedule 11.03.2020

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

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

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

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

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

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

person bradkratky    schedule 10.10.2016
comment
его, как и ожидалось, как у вас, но все равно возникает та же проблема. Помните, я думаю, что я получаю эту ошибку в журнале устройства от iOS. - person onCompletion; 11.10.2016
comment
Я удаляю и переустанавливаю приложение, но мой недавно добавленный путь в ассоциации «яблоко-приложение-сайт» по-прежнему не работает. Любые идеи? - person Hlung; 03.08.2017

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

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

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

person Jaap Weijland    schedule 29.12.2020
comment
Чувак, если бы я видел это пару часов назад, это могло бы сэкономить мне столько времени, пытаясь понять, что я сделал не так. Ха-ха, спасибо! - person Chan Jing Hong; 15.07.2021

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

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

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

person Alex Bauer    schedule 07.10.2016
comment
Я создаю файл json в возвышенном виде только с расширением и развертываю его на нашем сервере, который поддерживается с использованием Apache 2, а интерфейс был разработан с использованием Anguler. Я также использую этот код ‹FilesMatch ^ apple-app-site-association $› ForceType application / json ‹/FilesMatch› внутри .htaccess, но безрезультатно. - person onCompletion; 07.10.2016
comment
@bradkratky, да, я знаю. Мои извинения - я обычно не забываю помещать это раскрытие и почему-то пропустил его здесь :(. Исправлено сейчас - person Alex Bauer; 10.10.2016
comment
@unexpectedNil Мне интересно, не совпадает ли ваше выражение <FilesMatch>. А как насчет того, чтобы попробовать использовать более простое выражение <Files>? <Files "apple-app-site-association"> ForceType application/json </Files> - person Alex Bauer; 11.10.2016
comment
@AlexBauer, не беспокойтесь, спасибо. только что понял смысл ответа! Я думаю, что его json установлен правильно, завиток дает мне правильный тип содержимого - person bradkratky; 11.10.2016
comment
Ребята спасибо за ваши старания. Я постараюсь сделать то, что вы сказали, и дам вам знать ... :) - person onCompletion; 11.10.2016
comment
Интересно, что когда я смотрю на выборку заведомо хороших файлов AASA (Yelp, Pinterest, TripIt и т. Д.), Они либо используют тип содержимого text/plain, либо application/pkcs7-mime. - person Alex Bauer; 11.10.2016