Skip to content

发布插件

发布插件可以让他人也能使用你的插件,私人使用请忽略这一步。

发布插件主要包含两个方面:

  • 支持检索:方便其他用户发现这个插件
  • 支持检查更新:当你对插件进行更新之后,方便其他用户发现并升级到最新版

支持检索

将项目传到 GitHub,然后给这个项目添加一个名为 bobplugintopic,这样大家就可以通过以下链接找到这个项目了。

https://github.com/topics/bobplugin

下方这个插件列表抓取了上述 GitHub 链接的数据,每日会定期自动更新,查阅起来比较方便。

Bob 第三方插件列表

插件列表要求

  1. 如果你的插件 repo 是基于某个 repo 进行 fork 的,将无法出现在插件列表。 这种情况请自行创建一个新的 repo,并在 README 说明是基于某个 repo 进行修改的。
  2. 插件列表会从插件仓库根目录查找 appcast.json 文件(文档后续会介绍该文件),用以获取插件最新版本和下载地址等信息。
  3. 如果找不到 appcast.json 文件,会从插件仓库 release 信息中找到最新的 release 获取插件最新版本和下载地址等信息。

支持检查更新

在介绍 info.json 的文章中可以看到描述插件信息里面有个字段是 appcast,这个字段是一个 URL,用于请求获取插件的最新版本信息。

appcast 数据结构

appcast 接口请求应返回 json 格式数据,具体如下:

字段类型是否必须说明
identifierstring插件的唯一标识符,需和插件 info.json 文件中的唯一标识符一致。
versionsarray版本信息数组,请倒序排列,新版本放前面。具体结构看 version object

version object 结构如下:

字段类型是否必须说明
versionstring版本号,请与对应插件包 info.json 中的信息一致。
descstring插件的更新内容。
sha256string插件包 SHA256 哈希值,会和从 url 中下载的插件包进行校验。
urlstring插件包下载地址。
minBobVersionstring-最低支持本插件的 Bob 版本,请与对应插件包 info.json 中的信息一致。
timestampnumber-此版本发布的时间戳。类型是 number,单位毫秒。请尽量填写,插件列表会依据此数据将插件显示到近期更新分组中。

appcast.json 文件内容示例:

json
{
    "identifier": "com.ripperhe.translate.test",
    "versions": [
        {
            "version": "0.2.0",
            "desc": "修复xxx问题",
            "sha256": "00744ca8b8d84713425b7fc2073ca498aa7633faac537a1c1fa80d1264d3fc03",
            "url": "https://raw.githubusercontent.com/ripperhe/test/master/bobplugin/test_0.2.0.bobplugin",
            "minBobVersion": "0.5.0",
            "timestamp": 1685108700989
        },
        {
            "version": "0.1.0",
            "desc": "初始版本",
            "sha256": "5ec845ee2b60ac931ecac6f56c6a74ee16928ea4a8a4c98e2e85f09316b5ac1e",
            "url": "https://raw.githubusercontent.com/ripperhe/test/master/bobplugin/test_0.1.0.bobplugin",
            "minBobVersion": "0.5.0",
            "timestamp": 1682948700000
        }
    ]
}

SHA256

sha256 通过以下方式获取,打开 Mac 终端输入以下命令

sh
shasum -a 256 <这里换成插件包文件路>

存放 appcast.json

以 GitHub 为例,建议将 appcast.json 文件放到插件仓库根目录。(方便插件列表抓取数据)

可通过以下链接获取 json 文件信息,将用户名和仓库名替换为自己的。

https://github.com/用户名/插件仓库名/raw/main/appcast.json

然后将链接填写到 info.json 中的 appcast 字段即可实现检查更新。