Какова процедура загрузки файла apple-app-site-association на сервере. stg1.example.com - это сайт, на котором нужно универсальное связывание, и файл должен быть загружен в корневом пути. Как сделать службу для загрузки для универсальной привязки в iOS. Как загрузить файл json на сервере?
Как загрузить файл apple-app-site-association для универсального соединения на сервере для приложения iOS?
Ответ 1
Файл apple-app-site-association
должен быть доступен через HTTPS
без каких-либо переадресаций на странице https://stg1.example.com/apple-app-site-association.
Файл выглядит следующим образом:
{
"applinks": {
"apps": [ ],
"details": [
{
"appID": "{app_prefix}.{app_identifier}",
"paths": [ "/path/to/content", "/path/to/other/*", "NOT /path/to/exclude" ]
},
{
"appID": "TeamID.BundleID2",
"paths": [ "*" ]
}
]
}
}
демонстрационный файл пример
{
"applinks": {
"apps": [],
"details": [
{
"appID": "M8HBL5W4VV.com.Universal-Links",
"paths": [ "/iOS-Universal-Links/*"]
}
]
}
}
ПРИМЕЧАНИЕ. Не добавляйте .json
к имени файла apple-app-site-association
.
Ключи следующие: apps
: должен иметь пустой массив как его значение, и он должен присутствовать. Вот как это хочет Apple. details
: Является массивом словарей, по одному для каждого приложения iOS, поддерживаемого веб-сайтом. Каждый словарь содержит информацию о приложении, команде и идентификаторах пакетов.
Существует три способа определения путей: Static
: весь поддерживаемый путь жестко запрограммирован для идентификации конкретной ссылки, например./статические/термины Wildcards
: A * может использоваться для соответствия динамическим путям, например. /books/ * может соответствовать пути к любой странице авторов.? внутри конкретных компонентов пути, например. книги /1? может использоваться для соответствия любым книгам, чей идентификатор начинается с 1. Exclusions
: Предоставление пути с NOT исключает, что этот путь не сопоставлен.
Порядок, в котором пути упоминаются в массиве, важен. Более ранние индексы имеют более высокий приоритет. Когда путь совпадает, оценка останавливается, а другие пути игнорируются. Каждый путь чувствителен к регистру.
Поддержка нескольких доменов
Каждому домену, поддерживаемому в приложении, необходимо предоставить свой собственный файл ассоциации apple-app-site-association. Если контент, обслуживаемый каждым доменом, отличается, содержимое файла также будет изменяться для поддержки соответствующих путей. В противном случае можно использовать один и тот же файл, но он должен быть доступен в каждом поддерживаемом домене.
Подтвердите свой сервер с помощью инструмента проверки приложений Apple App
Проверьте свою веб-страницу для API поиска IOS 9. Введите URL-адрес, и Applebot сканирует вашу веб-страницу и покажет, как вы можете оптимизировать для достижения наилучших результатов
https://search.developer.apple.com/appsearch-validation-tool/
Код сайта
Код веб-сайта можно найти в разделе gh-pages branch https://github.com/vineetchoudhary/iOS-Universal-Links/tree/gh-pages
Подписание файла ассоциации приложений (для сервера HTTPS
)
Примечание. Вы можете пропустить эту часть, если ваш сервер использует HTTPS
для обслуживания контента и перехода к руководству по установке приложений.
Если ваше приложение предназначено для iOS 9, а ваш сервер использует HTTPS
для обслуживания контента, вам не нужно подписывать файл. Если нет (например, при поддержке Handoff на iOS 8), он должен быть подписан с использованием сертификата SSL
из признанного центра сертификации.
Примечание. Это не сертификат, предоставленный Apple для отправки вашего приложения в App Store. Он должен быть предоставлен третьей стороной и рекомендуется использовать тот же сертификат, который вы используете для своего сервера HTTPS
(хотя его не требуется).
Чтобы подписать файл, сначала создайте и сохраните простую .txt-версию. Затем в терминале выполните следующую команду:
cat <unsigned_file>.txt | openssl smime -sign -inkey example.com.key -signer example.com.pem -certfile intermediate.pem -noattr -nodetach -outform DER > apple-app-site-association
Это приведет к выводу подписанного файла в текущий каталог. example.com.key
, example.com.pem
и intermediate.pem
- это файлы, которые предоставили вам ваш сертифицирующий орган.
Примечание. Если файл неподписан, он должен иметь Content-Type
application/json
. В противном случае это должно быть application/pkcs7-mime
.
Посмотрите мой полный подробный ответ здесь
Как поддерживать Universal Links в приложении iOS для сервера приложений и настройки?