Справочник команд Adapty Developer CLI
В этой статье перечислены команды Adapty CLI для настройки аккаунта — приложений, уровней доступа, продуктов, пейволов, флоу, плейсментов и сегментов — а также команды для миграции проекта из RevenueCat, с их аргументами, флагами и допустимыми значениями. По командам для рекламных кампаний Apple Ads см. Команды Ads Manager.
Об аутентификации и управлении токенами см. Аутентификация.
Глобальные флаги
Эти флаги доступны для всех команд.
| Флаг | Описание |
|---|---|
--json | Вывод в формате JSON вместо форматированного текста |
--help | Показать справку по команде |
Все команды list также принимают флаги пагинации:
| Флаг | По умолчанию | Описание |
|---|---|---|
--page | 1 | Номер страницы |
--page-size | 20 | Элементов на странице (макс.: 100) |
Приложения
Управляйте приложениями в своём аккаунте Adapty. Настройки через дашборд описаны в разделе Настройки приложения.
adapty apps list
Список всех приложений в вашем аккаунте Adapty.
adapty apps list
Принимает флаги пагинации.
adapty apps get
Получить сведения о конкретном приложении.
adapty apps get <app-id>
| Аргумент | Описание |
|---|---|
app-id | Идентификатор приложения (UUID) |
adapty apps create
Создать новое приложение.
adapty apps create --title "My App" --platform ios --apple-bundle-id com.example.app
| Флаг | Обязательный | Описание |
|---|---|---|
--title | Да | Название приложения |
--platform | Да | Платформа: ios или android. Повторите для обеих: --platform ios --platform android |
--apple-bundle-id | Обязателен с --platform ios | Apple bundle ID |
--google-bundle-id | Обязателен с --platform android | Google bundle ID |
adapty apps update
Обновить существующее приложение.
adapty apps update <app-id> --title "New Name"
| Аргумент | Описание |
|---|---|
app-id | ID приложения (UUID) |
| Флаг | Описание |
|---|---|
--title | Новый заголовок приложения |
--apple-bundle-id | Новый Apple bundle ID |
--google-bundle-id | Новый Google bundle ID |
Необходим хотя бы один флаг. --platform нельзя изменить после создания.
Уровни доступа
adapty access-levels list
Список всех уровней доступа приложения.
adapty access-levels list --app <app-id>
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Принимает флаги пагинации.
adapty access-levels get
Получить сведения о конкретном уровне доступа.
adapty access-levels get --app <app-id> <access-level-id>
| Аргумент | Описание |
|---|---|
access-level-id | ID уровня доступа (UUID) |
| Флаг | Обязателен | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
adapty access-levels create
Создать новый уровень доступа.
adapty access-levels create --app <app-id> --sdk-id "pro" --title "Pro"
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--sdk-id | Да | Идентификатор, используемый в коде приложения для проверки доступа (например, "pro" или "premium") |
--title | Да | Отображаемое название в дашборде Adapty |
adapty access-levels update
Обновление существующего уровня доступа.
adapty access-levels update --app <app-id> <access-level-id> --title "Pro Access"
| Аргумент | Описание |
|---|---|
access-level-id | ID уровня доступа (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Новое отображаемое название |
--sdk-id нельзя изменить после создания.
Продукты
Список продуктов Adapty
Список всех продуктов для приложения.
adapty products list --app <app-id>
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Принимает флаги пагинации.
adapty products get
Получение сведений о конкретном продукте.
adapty products get --app <app-id> <product-id>
| Аргумент | Описание |
|---|---|
product-id | ID продукта (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
adapty products create
Создайте новый продукт.
ID продукта в сторе и ID цены нельзя изменить после создания. Чтобы использовать другие ID стора, создайте новый продукт.
adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --ios-product-id com.example.monthly
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название продукта |
--access-level-id | Да | ID уровня доступа (UUID), который открывает этот продукт |
--period | Да | Период подписки: weekly, monthly, two_months, trimonthly, semiannual, annual, lifetime |
--ios-product-id | Требуется хотя бы один стор | ID продукта из App Store Connect |
--android-product-id | Требуется хотя бы один стор | ID продукта из Google Play Console |
--android-base-plan-id | Обязательный с --android-product-id, если не указан --period lifetime | ID базового плана из Google Play Console |
--stripe-product-id | Требуется хотя бы один стор | ID продукта из Stripe |
--stripe-price-id | Обязательный с --stripe-product-id | ID цены из Stripe |
--paddle-product-id | Требуется хотя бы один стор | ID продукта из Paddle |
--paddle-price-id | Обязательный с --paddle-product-id | ID цены из Paddle |
Каждый продукт требует как минимум один стор: --ios-product-id, --android-product-id, --stripe-product-id или --paddle-product-id. Один продукт может содержать идентификаторы сразу нескольких сторов.
Чтобы продавать продукт в вебе через Stripe или Paddle, сначала подключите платёжного провайдера к Adapty: см. Stripe и Paddle. Для каждого из этих сторов нужно передать одновременно идентификатор продукта и идентификатор цены. Если передать только один из них, команда завершится с ошибкой.
adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --stripe-product-id prod_xxx --stripe-price-id price_xxx
Продукт только для веба является допустимым: можно создать продукт с идентификаторами Stripe или Paddle без идентификаторов App Store или Google Play.
adapty products update
Обновить существующий продукт.
Идентификаторы продукта в сторе и цены нельзя изменить после создания — они недоступны в этой команде. Чтобы использовать другие идентификаторы стора, создайте новый продукт.
adapty products update --app <app-id> <product-id> --title "Monthly" --access-level-id <access-level-id>
| Аргумент | Описание |
|---|---|
product-id | ID продукта (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Нет | Название продукта |
--access-level-id | Нет | ID (UUID) уровня доступа, который открывает этот продукт |
Пейволы
Список пейволов Adapty
Список всех пейволов приложения.
adapty paywalls list --app <app-id>
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Принимает флаги пагинации.
adapty paywalls get
Получить детали конкретного пейвола.
adapty paywalls get --app <app-id> <paywall-id>
| Argument | Description |
|---|---|
paywall-id | Paywall ID (UUID) |
| Flag | Required | Description |
|---|---|---|
--app | Yes | App ID (UUID) |
adapty paywalls create
Создание нового пейвола.
adapty paywalls create --app <app-id> --title "Default Paywall" --product-id <product-id>
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название пейвола |
--product-id | Да | ID продукта (UUID). Повторите для нескольких продуктов: --product-id <id1> --product-id <id2> |
adapty paywalls update
Замените все поля существующего пейвола.
После привязки пейвола к плейсменту его продукты нельзя изменить. Чтобы использовать другие продукты в активном пейволе, создайте новый пейвол и обновите плейсмент так, чтобы он указывал на него.
adapty paywalls update --app <app-id> <paywall-id> --title "Default Paywall" --product-id <product-id>
Эта команда заменяет все поля пейвола, включая полный список продуктов.
| Аргумент | Описание |
|---|---|
paywall-id | ID пейвола (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название пейвола |
--product-id | Да | ID продукта (UUID). Повторите для нескольких продуктов: --product-id <id1> --product-id <id2> |
adapty paywalls placements
Выводит все плейсменты, в которых используется указанный пейвол.
adapty paywalls placements --app <app-id> <paywall-id>
| Аргумент | Описание |
|---|---|
paywall-id | ID пейвола (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Используйте эту команду перед заменой пейвола, чтобы увидеть, какие плейсменты будут затронуты.
Элементы этого списка не содержат поля is_active. Чтобы узнать статус активации плейсмента, используйте placements list или placements get.
Флоу
Флоу — это пейволы и онбординги, которые вы создаёте в Flow & Paywall Builder. CLI управляет записью флоу, его конфигурацией билдера и публикацией. Конфигурация билдера — это большой JSON-документ, который обычно генерирует Flow & Paywall Builder; CLI его не создаёт. Чтобы создать или отредактировать конфигурацию из терминала, используйте скилл flow-generator — он управляет этими командами за вас. Перед публикацией скилл flow-audit проверяет, готов ли флоу к продакшену. Команды приведены здесь как справочный материал.
adapty flows list
Список всех флоу приложения.
adapty flows list --app <app-id>
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Поддерживает флаги пагинации.
adapty flows get
Получить подробную информацию о конкретном флоу.
adapty flows get --app <app-id> <flow-id>
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Ответ содержит id, name, status и updated_at. Возможные значения статуса:
| Статус | Значение |
|---|---|
draft | Флоу никогда не публиковался |
published | Текущая версия опубликована |
dirty | Флоу был опубликован ранее, и в текущей версии есть неопубликованные изменения. Пользователи видят последнюю опубликованную версию |
publishing | Публикация выполняется |
publication_failed | Последняя публикация завершилась ошибкой. Исправьте конфигурацию и опубликуйте снова |
archived | Флоу заархивирован |
adapty flows create
Создайте флоу. Новый флоу имеет только имя и не содержит конфигурации. Чтобы добавить конфигурацию, используйте flows config update.
adapty flows create --app <app-id> --name "Onboarding"
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--name | Да | Имя флоу |
adapty flows update
Переименование флоу.
adapty flows update --app <app-id> <flow-id> --name "Onboarding v2"
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязателен | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--name | Да | Новое название флоу |
adapty flows publish
Опубликуйте текущую версию флоу для ваших пользователей.
adapty flows publish --app <app-id> <flow-id>
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--yes, -y | Нет | Опубликовать без запроса подтверждения. Обязателен, если вывод перенаправляется или используется --json |
Поскольку публикация изменяет то, что видят ваши пользователи, команда выводит название флоу и запрашивает подтверждение. Любой ответ, кроме y, отменяет команду с кодом выхода 1. При использовании --json или в пайпе команда отказывается выполняться с кодом выхода 2 вместо ожидания ответа, поэтому в скриптах и агентских сессиях передавайте --yes.
Публикация выполняется асинхронно: в ответе возвращается status: publishing, а флоу ещё не активно. Опрашивайте flows get до тех пор, пока статус не станет published или publication_failed. При publication_failed команда flows config get сообщит о причине.
Публикация завершается с ошибкой HTTP 400, если у флоу нет конфига, если конфиг не готов к публикации или если текущая версия уже активна. Чтобы проверить конфиг перед публикацией, используйте flows config validate.
adapty flows config get
Чтение конфигурации конструктора флоу.
adapty flows config get --app <app-id> <flow-id>
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Ответ содержит поля config, remote_configs, status и updated_at. updated_at — это временная метка в миллисекундах последнего изменения конфига. Передайте её в flows config update через --expected-updated-at, чтобы избежать перезаписи при параллельном редактировании. Для флоу, конфиг которого ни разу не записывался, возвращается 404.
После попытки публикации ответ также содержит три поля, описывающих её результат. Читайте их, когда flows get возвращает publication_failed:
| Поле | Описание |
|---|---|
publication_status | На каком этапе находится публикация этой версии флоу: transforming, transformed, uploading, uploaded, published или failed |
transform_error | Необработанная ошибка трансформации — либо JSON-объект с перечнем проблем, либо краткая строка с описанием |
publication_error | Понятное сообщение об ошибке публикации |
adapty flows config update
Записать конфиг билдера для флоу.
adapty flows config update --app <app-id> <flow-id> --config-file config.json
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--config | Один из двух | Конфиг Builder в виде JSON-строки |
--config-file | Один из двух | Путь к JSON-файлу с конфигом Builder, или - для чтения из stdin |
--remote-configs | Нет | JSON-массив записей {locale, data}, где data — это Remote Config в виде строки |
--expected-updated-at | Нет | Значение updated_at из предыдущего вызова flows config get. Если конфиг изменился после этого чтения, команда завершится с ошибкой вместо перезаписи изменения. Если не указать — перезаписывает безусловно |
Запись конфигурации сохраняет черновик, но не публикует его. Для опубликованного флоу запись создаёт новую версию: статус флоу становится dirty, и пользователи продолжают видеть опубликованную версию до тех пор, пока вы не выполните flows publish.
adapty flows config validate
Проверяет, готова ли конфигурация билдера к публикации, без её сохранения.
adapty flows config validate --app <app-id> <flow-id> --config-file config.json
| Аргумент | Описание |
|---|---|
flow-id | ID флоу (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--config | Один из двух | Конфигурация билдера в виде JSON-строки |
--config-file | Один из двух | Путь к JSON-файлу с конфигурацией билдера или - для чтения из stdin |
Ответ содержит valid и список issues. Если конфиг нельзя опубликовать, команда завершается с кодом 1 — так скрипты могут использовать это как условие.
adapty flows config preview
Отрисовывает локальный конфигурационный файл в браузере. Эта команда не обращается к API и не принимает флаг --app.
adapty flows config preview ./config.json --screen <screen-id> --device iphone-14 --orientation portrait
| Аргумент | Описание |
|---|---|
config-file | Путь к локальному JSON-файлу конфигурации билдера |
| Флаг | По умолчанию | Описание |
|---|---|---|
--screen | Первый экран флоу | ID экрана для отрисовки |
--device | iphone-14 | Фрейм устройства для отрисовки |
--orientation | portrait | portrait или landscape |
В терминале команда открывает предпросмотр в браузере. При использовании pipe или флага --json она выводит URL вместо этого. URL содержит всю конфигурацию и может быть очень длинным: передавайте его в инструмент для скриншотов, а не выводите напрямую. Конфигурации объёмом более ~32 КБ рендерятся медленно.
adapty flows media upload
Загрузите изображение для использования в конфиге флоу.
adapty flows media upload --app <app-id> ./hero.png
| Аргумент | Описание |
|---|---|
file | Путь к файлу изображения |
| Флаг | Обязателен | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Поддерживаемые форматы: GIF, HEIC, JPEG, PNG, SVG и WebP. В ответе содержатся id, name и CDN-ссылка url для обращения из конфига.
Плейсменты
Плейсменты — это точки, в которых флоу, пейволы и онбординги показываются пользователям. Тип контента плейсмента задаётся при создании, поэтому при переходе с пейволов на флоу нужно создавать новые плейсменты, а не обновлять существующие — для этого в скилле migrate-placements есть команды, которые автоматизируют этот процесс.
adapty placements list
Вывод списка всех плейсментов для приложения.
adapty placements list --app <app-id>
| Флаг | Обязателен | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Принимает флаги пагинации.
Каждый элемент содержит id, developer_id, title и is_active. is_active равно true для активного плейсмента и false для неактивного.
adapty placements get
Получить детали конкретного плейсмента.
adapty placements get --app <app-id> <placement-id>
| Аргумент | Описание |
|---|---|
placement-id | ID плейсмента (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
Ответ содержит поля id, developer_id, title, is_active и массив audiences. is_active равно true для активного плейсмента и false для неактивного. Каждый элемент массива аудиторий содержит content_type (paywall или flow), segment_ids, priority, а также paywall_id или flow_id. Аудитория по умолчанию имеет segment_ids: [] и наибольшее значение priority (вычисляется последней). См. Структуру audiences.
adapty placements create
Создать новый плейсмент.
adapty placements create --app <app-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название плейсмента |
--developer-id | Да | Строковый идентификатор, используемый в коде приложения для запроса этого плейсмента |
--audiences | Один из двух | JSON-массив элементов аудитории, каждый с явным content_type. См. Структура аудиторий |
--paywall-id | Один из двух | Устарело. ID пейвола (UUID). На стороне клиента оборачивается в единую аудиторию по умолчанию |
Передайте ровно один из параметров: --audiences или --paywall-id. Передача обоих или ни одного из них вызывает ошибку.
--paywall-id устарел и будет удалён. При передаче этого флага CLI выводит предупреждение в stderr и преобразует значение в аудиторию по умолчанию. Для новой автоматизации используйте --audiences.
adapty placements update
Заменяет все поля существующего плейсмента.
adapty placements update --app <app-id> <placement-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'
Эта команда заменяет все поля плейсмента, включая полный список аудиторий.
| Аргумент | Описание |
|---|---|
placement-id | ID плейсмента (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
--title | Да | Название плейсмента |
--developer-id | Да | Строковый идентификатор, используемый в коде приложения для запроса этого плейсмента |
--audiences | Один из двух | JSON-массив записей аудиторий, каждая с явным content_type. См. Форма audiences |
--paywall-id | Один из двух | Устарело. ID пейвола (UUID). Заменяет все аудитории одной аудиторией по умолчанию |
Передача --paywall-id перезаписывает все аудитории на плейсменте. Аудитории для конкретных сегментов удаляются. Чтобы сохранить их, используйте --audiences и включите все записи, которые хотите оставить.
Структура аудиторий
Флаг --audiences принимает JSON-массив. Каждая запись содержит:
| Поле | Тип | Описание |
|---|---|---|
content_type | string | "paywall" или "flow". Обязательно для каждой записи. Все записи в одном плейсменте должны иметь одинаковое значение |
segment_ids | string[] | ID сегментов, на которые нацелена эта аудитория. Длина 0 или 1. Пустой массив обозначает аудиторию по умолчанию — резервный вариант для пользователей, не попавших ни в один другой сегмент |
paywall_id | string | ID пейвола (UUID), показываемого пользователям в этой аудитории. Обязательно, когда content_type равен "paywall" |
flow_id | string | ID флоу (UUID), показываемого пользователям в этой аудитории. Обязательно, когда content_type равен "flow" |
priority | number | Нумерация с 0, уникальная в рамках плейсмента. Аудитории оцениваются от меньшего к большему; аудитория по умолчанию должна иметь наибольшее значение |
У плейсмента должна быть ровно одна аудитория по умолчанию.
Тип контента плейсмента фиксируется при создании, поэтому placements update не может переключить плейсмент с пейвола на флоу и наоборот. Разместите флоу в отдельном плейсменте — см. Создание нового плейсмента для флоу.
CLI проверяет каждую запись перед отправкой запроса. Запись с отсутствующим или неизвестным content_type, либо без ID, которого требует content_type, завершается с кодом 2, и ничего не отправляется.
Флоу можно привязать только после его публикации. draft-флоу или флоу, чья первая публикация ещё не завершена, будет отклонён сервером; CLI распознаёт это отклонение и завершает работу с кодом 2, выводя команду flows publish для данного флоу. Чтобы опубликовать флоу, используйте flows publish или Flow & Paywall Builder, а затем дождитесь, когда его статус станет published.
Пример с одной целевой аудиторией и одной аудиторией по умолчанию:
adapty placements update <placement-id> --app <app-id> --title "Main" --developer-id "main" \
--audiences '[{"content_type":"paywall","segment_ids":["<vip-segment-id>"],"paywall_id":"<vip-paywall-id>","priority":0},{"content_type":"paywall","segment_ids":[],"paywall_id":"<default-paywall-id>","priority":1}]'
Пример плейсмента, который показывает опубликованный флоу всем пользователям:
adapty placements create --app <app-id> --title "Onboarding" --developer-id "onboarding" \
--audiences '[{"content_type":"flow","segment_ids":[],"flow_id":"<flow-id>","priority":0}]'
Чтобы заменить пейвол в нескольких плейсментах без потери маршрутизации по сегментам:
-
Найдите затронутые плейсменты:
adapty paywalls placements --app <app-id> <old-paywall-id> -
Для каждого из них считайте полный массив
audiences:adapty placements get --app <app-id> <placement-id> --json -
Замените совпадающие значения
paywall_idна стороне клиента. -
Запишите изменённые данные обратно:
adapty placements update --app <app-id> <placement-id> --title "<title>" --developer-id "<developer-id>" --audiences '<modified-payload>'
Сегменты
Сегменты доступны через CLI только для чтения. Создавайте и редактируйте их в дашборде Adapty. Используйте эти команды, чтобы найти идентификаторы сегментов при составлении аудиторий плейсментов.
adapty segments list
Список всех сегментов приложения.
adapty segments list --app <app-id>
| Flag | Required | Description |
|---|---|---|
--app | Yes | App ID (UUID) |
Принимает флаги пагинации.
adapty segments get
Получите сведения о конкретном сегменте.
adapty segments get --app <app-id> <segment-id>
| Аргумент | Описание |
|---|---|
segment-id | ID сегмента (UUID) |
| Флаг | Обязательный | Описание |
|---|---|---|
--app | Да | ID приложения (UUID) |
В ответе содержатся id, title и description. Правила фильтрации через этот API не доступны.
Миграции
Перенесите проект RevenueCat в Adapty: каталог продуктов, а также, при необходимости, события стора и историю транзакций. Adapty выполняет каждую миграцию последовательно и сообщает, какие действия можно выполнить следующими, — поэтому перед каждым действием читайте status. Полная процедура описана в статье Миграция из RevenueCat.
Все команды, кроме list, create, use, current и unuse, принимают флаг миграции:
| Флаг | Обязательный | Описание |
|---|---|---|
-m, --migration | Нет | ID миграции. Если не указан, CLI использует переменную окружения ADAPTY_MIGRATION, затем миграцию, сохранённую командой create или use. |
adapty migrations list
Просмотр ваших миграций и флоу миграций, которые можно запустить, сгруппированных по приложениям.
adapty migrations list
adapty migrations create
Запустить миграцию и сохранить её как текущую.
adapty migrations create --name <app-name>
adapty migrations create --flow <flow> --app <app-id>
| Флаг | Обязателен | Описание |
|---|---|---|
--name | Один из --name или --flow | Название нового приложения Adapty. Запускает миграцию каталога. Нельзя использовать вместе с --flow или --app. |
--flow | Один из --name или --flow | Флоу для запуска в существующем приложении, как показывает adapty migrations list. Требует --app. |
--app | С --flow | ID приложения (UUID) |
--no-select | Нет | Создать миграцию без сохранения её как текущей |
Флоу, доступные для существующего приложения после миграции каталога:
| Флоу | Описание |
|---|---|
transactions | Импорт истории транзакций из ежедневного Cloud Export RevenueCat |
transactions_support | Импорт истории транзакций через поддержку RevenueCat и поддержку Adapty — для тарифов RevenueCat без Cloud Export |
apple_events | Пересылка уведомлений App Store в Adapty при сохранении их получения в RevenueCat |
google_events | Подключение Adapty к топику Pub/Sub, который RevenueCat использует для уведомлений Google Play |
adapty migrations use
Сохраняет миграцию как текущую, чтобы другие команды не требовали флага -m.
adapty migrations use <migration-id>
| Аргумент | Описание |
|---|---|
migration-id | ID миграции из adapty migrations list |
CLI проверяет доступ к миграции перед сохранением ID. Сохранённая миграция привязана к текущему токену и применяется во всех терминалах.
adapty migrations current
Показывает текущую миграцию и её источник: переменную окружения ADAPTY_MIGRATION или сохранённый выбор.
adapty migrations current
adapty migrations unuse
Очищает сохранённую миграцию. Значение ADAPTY_MIGRATION, заданное в оболочке, действует до тех пор, пока вы не сбросите его.
adapty migrations unuse
adapty migrations status
Показывает состояние миграции, её проблемы и доступные следующие действия.
adapty migrations status
| Флаг | Обязательный | Описание |
|---|---|---|
--wait | Нет | Опрашивать до изменения состояния миграции, затем вернуть последнее состояние |
--timeout | Нет | Время опроса для --wait: 1–600 секунд, по умолчанию 120. Принимает 300, 300s или 5m. Требует --wait. |
С флагом --json поля next_actions и available_actions содержат для каждого действия его ID, читаемые ресурсы, input_schema и текст confirm.
Код завершения 0 означает, что запрос выполнен успешно, но не что миграция прошла успешно. Проверьте migration.state в ответе.
Шаги миграции adapty
Показывает чеклист миграции и статус каждого шага.
adapty migrations steps
adapty migrations show
Просмотр доступных ресурсов или чтение одного из них.
adapty migrations show [resource]
| Аргумент | Описание |
|---|---|
resource | Название ресурса, например apps, mapping, report или export-config. Если не указать, отобразится список ресурсов, доступных на текущем шаге. |
adapty migrations run
Выполняет действие из adapty migrations status.
adapty migrations run <action-id>
| Аргумент | Описание |
|---|---|
action-id | ID действия из next_actions или available_actions в adapty migrations status |
| Флаг | Обязательный | Описание |
|---|---|---|
--input | Нет | Входные данные действия в виде JSON-объекта, соответствующего input_schema действия. Без входных данных CLI отправляет {}. |
--input-file | Нет | Путь к файлу с входными данными действия или - для чтения из stdin. Нельзя использовать вместе с --input. |
-y, --yes | Для действий с текстом confirm | Подтверждает действие после прочтения текста confirm. Интерактивного запроса нет. |
--open | Нет | Открывает ссылку действия даже при использовании pipe или --json |
--no-browser | Нет | Выводит ссылку действия без открытия браузера |
Действия бывают двух видов:
- Input actions отправляют ваши данные в Adapty — например, список приложений RevenueCat для миграции или ваши решения по маппингу.
- External actions открывают страницу в дашборде Adapty — например, чтобы вставить секретный API-ключ RevenueCat. Заполните страницу, затем проверьте
status.
adapty migrations close
Завершите или отмените миграцию. После этого её нельзя будет открыть снова.
adapty migrations close --outcome finish --yes
| Флаг | Обязателен | Описание |
|---|---|---|
--outcome | Да | finish помечает миграцию как завершённую; cancel отменяет её |
-y, --yes | Да | Подтвердите закрытие |
Auth
| Команда | Описание |
|---|---|
adapty auth login | Аутентификация через браузер с использованием device flow |
adapty auth logout | Очистить сохранённые учётные данные и сохранённую миграцию локально |
adapty auth whoami | Проверить токен на сервере и показать информацию о пользователе |
adapty auth status | Показать локальное состояние аутентификации без обращения к серверу |
adapty auth revoke | Отозвать токен на сервере, затем очистить его и сохранённую миграцию локально |
Подробнее о каждой команде см. в разделе Аутентификация.