---
title: "备用流程"
description: "在 Adapty 中设置本地备用流程，确保设备离线时流程仍可正常展示。"
---

为了保持流畅的用户体验，为你的[流程](adapty-flow-builder)设置**备用版本**非常重要。
当您的应用请求流程时，Adapty SDK 会联系我们的服务器获取其配置。如果设备无法访问 Adapty（网络问题、服务器故障），SDK 将回退到本地数据：

- 如果用户之前已经看过该流程，SDK 会使用缓存的副本。
- 如果没有缓存，SDK 会加载打包在应用内的备用配置文件。

Adapty 会自动生成这些备用文件。流程的备用包与付费墙共享——每个平台使用一个 JSON 文件，其中包含两者的备用变体。SDK 会读取它所需的对应部分。
:::important
流程备用方案包含在 **Adapty SDK 4.0+** 版本中。如果在下载对话框中选择了更早的 SDK 版本，文件将只包含付费墙和用户引导的变体，不包含流程内容。在依赖流程备用方案之前，请确保你的应用使用的是支持流程的 SDK 版本。
:::
## 开始之前 \{#before-you-start\}

1. 在流程编辑器中创建一个[流程](adapty-flow-builder)。
2. 为该流程[创建一个版位](create-placement)。
## 下载备用付费墙文件 \{#download-the-fallback-file\}

1. 打开 **[Placements](https://app.adapty.io/placements)** 页面。
2. 点击右上角的 **Fallbacks** 按钮。
3. 从下拉菜单中选择目标平台。
4. 选择与应用中已集成版本匹配的 SDK 版本。选择 **Adapty SDK v4.0.0 and higher**（或更高版本选项），以获取包含 flows 的资源包。

浏览器将按平台下载一个 JSON 文件，例如 `ios_4_0_0_fallback.json`。

<details>
   <summary>示例 flow 备用条目（点击展开）</summary>
```json
"PLACEMENT_ID": {
  "data": [
    {
      "developer_id": "PLACEMENT_ID",
      "variation_id": "cb1c0ef8-aecd-4a53-a6f3-b98266e66884",
      "flow_id": "daf25858-3fa2-4981-8500-9c8a30e5b7e6",
      "flow_name": "FLOW_NAME",
      "flow_version_id": "FLOW_VERSION_ID",
      "placement_audience_version_id": "a9eb3ab8-3178-477d-84d4-ef9d3978e48b",
      "audience_name": "All Users",
      "ab_test_name": "",
      "cross_placement_info": null,
      "weight": 100,
      "variations": [
        {
          "variation_id": "cb1c0ef8-aecd-4a53-a6f3-b98266e66884",
          "paywall_id": "PAYWALL_ID",
          "paywall_name": "PAYWALL_NAME",
          "ab_test_name": "",
          "products": [],
          "revision": 1,
          "custom_payload": null,
          "weight": 100
        }
      ],
      "remote_configs": []
    }
  ],
  "meta": {
    "placement": {
      "developer_id": "PLACEMENT_ID",
      "is_tracking_purchases": true,
      "audience_name": "All Users",
      "placement_audience_version_id": "a9eb3ab8-3178-477d-84d4-ef9d3978e48b",
      "revision": 0,
      "ab_test_name": ""
    }
  }
}
```
确切的结构可能因 SDK 版本而异。请始终使用 Adapty 为您的 SDK 版本生成的文件，而不是手动编写。
</details>
## 下载后 \{#after-the-download\}

将文件添加到您的应用代码中，然后按照对应平台的配置指南操作。加载付费墙备用文件的 API 同样适用于加载流程备用文件，前提是您的应用已升级到支持流程的 SDK 版本：

- [iOS](ios-use-fallback-paywalls)
## 限制 \{#limitations\}

备用流程是硬编码并本地存储的，因此不具备实时流程的完整动态能力：
- **每个版位仅一个变体。** 如果某个版位有多个流程（不同目标受众或 A/B 测试变体），备用文件将使用权重最高或受众范围最广的那个变体。
- **不支持 A/B 测试。** 线上流程的 A/B 测试由服务器解析；备用方案始终只提供单个选定的变体。
- **不支持远程更新。** 更新备用文件需要发布新版本应用。如需运行时更新，请改用线上流程通过远程配置推送。
- **仅支持默认语言。** 备用方案使用 `en` 语言环境，不包含本地化变体。