Flows 命令

流程(Flows)是你在 Flow & Paywall Builder 中构建的付费墙和用户引导。CLI 负责管理流程记录、其 Builder 配置以及发布操作。Builder 配置是一个大型 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。status 的值为以下之一:

状态含义
draft流程从未发布过
published当前版本已上线
dirty流程曾经发布过,但当前版本有未发布的更改。用户看到的仍是上次发布的版本
publishing正在发布中
publication_failed上次发布失败。请修复配置后重新发布
archived流程已归档

adapty flows create

创建一个流程。新流程只有名称,没有配置。如需添加配置,请使用 flows config update。

adapty flows create --app <app-id> --name "Onboarding"
参数是否必填说明
--app是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 退出,而不是等待输入,因此在脚本和 Agent 会话中请传入 --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 是最后一次配置变更的毫秒级时间戳。将其作为 --expected-updated-at 传入 flows config update,可避免覆盖并发编辑。如果某个流程的配置从未写入,则返回 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是App ID(UUID)
--config二选一编辑工具配置,以 JSON 字符串形式传入
--config-file二选一指向包含编辑工具配置的 JSON 文件路径,或传入 - 以从 stdin 读取
--remote-configs否{locale, data} 条目组成的 JSON 数组,其中 data 为字符串形式的远程配置
--expected-updated-at否上次执行 flows config get 时返回的 updated_at 值。若配置在该次读取之后发生了变更,命令将报错而不会覆盖更改。不传此参数则无条件覆盖

保存配置会创建草稿,而不会直接发布。对于已发布的流程,写入操作会创建新版本:流程状态变为 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 文件路径,或使用 - 从标准输入读取

响应中包含 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
--deviceiphone-14渲染所用的设备框架
--orientationportraitportrait 或 landscape

在终端中,该命令会在浏览器中打开预览。当通过管道传输或使用 --json 时,它会打印 URL 而非打开浏览器。该 URL 包含完整配置,因此较长:建议将其传入截图工具,而非直接打印。超过约 32 KB 的配置渲染速度会较慢。

adapty flows media upload

上传图片以用于流程配置。

adapty flows media upload --app <app-id> ./hero.png
参数描述
file图片文件路径
标志是否必填描述
--app是App ID(UUID)

支持的格式:GIF、HEIC、JPEG、PNG、SVG 和 WebP。响应中包含图片的 id、name 以及用于在配置中引用的 CDN url。

下一步

  • 命令参考 — 所有 CLI 主题、全局标志和分页标志。