# 版本说明

开发插件时会遇到四类版本字段，它们解决不同的问题。

## 协议版本

`manifest.json` 的 `apiVersion` 当前是 `1`。它决定清单和 SDK 使用哪一套交互方式。页面脚本名称中的 `v1` 对应页面桥接协议版本。

## 插件版本

顶层 `version` 使用 SemVer，例如 `1.2.0`。每次发布新包都递增这个值；商店保存每个发布版本，桌面端据此识别更新。消费方在 `dependencies` 中填写提供方插件的包版本范围，例如 `^1.2.0`；这与服务接口的整数版本分别校验。

当前工程中的 SDK 包版本为 `0.1.0`，桌面宿主版本为 `0.0.1`。SDK 随飞块提供，插件通过 `FLYONDECK_SDK_PATH` 加载它。

## 服务版本

`services[].version` 与 `uses[].version` 是正整数，表示服务接口版本。提供方和消费方精确匹配，具体示例见[插件服务与事件](../protocol/v1/services-events.md)。

## 配置版本

`configurationVersion` 是宿主管理的配置格式版本，默认为 1，与包版本分开递增。`configurationMigrations` 声明迁移目标版本，对应后台同名处理器集合。包发布修复或换图标时不必改变配置版本；字段改名、类型调整或动作标识变化时，提供逐版本迁移。见[更新与迁移](../migrations/compatibility.md)。
