Глубокие ссылки iOS (AASA)

Что такое ААСА?

Чтобы поддерживать глубокие ссылки на iOS, вам необходимо разместить на своем веб-сайте файл Apple-App-Site-Association (AASA). Файл AASA — это файл JSON, который содержит информацию о схемах URL-адресов, поддерживаемых вашим приложением. Когда пользователь нажимает на ссылку, которая соответствует одной из схем URL-адресов в файле AASA, вместо браузера открывается приложение.

Почему это важно?

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

Как должен выглядеть файл?

этот файл должен содержать соответствующие настройки вашего приложения, а структура файла должна выглядеть так

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "YourAppID",
        "paths": ["*"]
      }
    ]
  }
}

apps: должен присутствовать массив приложений, но он всегда будет пустым.

Идентификатор приложения: создается путем объединения идентификатора команды вашего приложения* (или префикса приложения Apple) и идентификатора пакета**. В приведенном выше примере 3XXXXX9M83 — это идентификатор команды, а io.branch-labs.Branchster — идентификатор пакета.

paths: массив строк, указывающих, какие пути включены или исключены из ассоциации.

  • Не знаете, какой у вас идентификатор команды? Перейдите на https://developer.apple.com/account и получите его в разделе «Членство».

Хорошо.. как обслуживать этот файл?

Если вы используете FastAPI для обслуживания своего веб-сайта, вы можете легко обслуживать файл AASA, создав новую конечную точку в своем API.

from fastapi import FastAPI, File, UploadFile
app = FastAPI()

@app.get("/apple-app-site-association")
async def apple_app_site_association():
    return File("path/to/apple-app-site-association.json", filename="apple-app-site-association.json")

В приведенном выше фрагменте кода создается конечная точка apple_app_site_association, которая обслуживает файл AASA. Класс File используется для обслуживания файла, а для параметра имени файла задано значение apple-app-site-association.json, чтобы гарантировать, что файл обслуживается с правильным типом содержимого.

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

@app.post("/apple-app-site-association")
async def apple_app_site_association(file: UploadFile):
    return File(file.file, filename="apple-app-site-association.json")

Таким образом, пользователь может загрузить файл AASA на ваш сервер, используя эту конечную точку.

Не делай глупых ошибок

Важно отметить, что файл AASA должен передаваться через защищенное соединение (HTTPS), а его местоположение должно быть доступно для всех клиентов. Также важно убедиться, что файл доступен с правильным типом содержимого.

Проверка вашего файла

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

просто поместите свой полный URL-адрес в корень быстрого API

без — /apple-app-site-association

ссылка должна выглядеть так -

мойдомен.com

Если вы все сделали правильно, то должны увидеть следующее:

Помнить!

обслуживать файл ассоциации сайта-приложения-яблока с помощью FastAPI очень просто. Вам просто нужно создать новую конечную точку в вашем API, которая обслуживает файл, и убедиться, что он обслуживается через безопасное соединение и доступен для всех клиентов. Вы можете передать файл, указав путь к файлу или загрузив его на свой сервер.

Удачи, Шайло!