发布插件

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

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

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

支持检索

GitHub Topic

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

https://github.com/topics/bobplugin在新窗口打开

插件列表

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

https://bobplugin.ripperhe.com在新窗口打开

注意,如果你的插件 repo 是基于某个 repo 进行 fork 的,将无法出现在插件列表。

这种情况请自行创建一个新的 repo,并在 README 说明是基于某个 repo 进行修改的,以表达对原作者的尊重。

支持检查更新

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

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

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

version object 结构如下:

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

SHA256

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

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

存放 appcast.json

前面建议的是将插件仓库放到 GitHub,所以这里也以 GitHub 为例。

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

如果将 appcast.json 文件放到插件仓库根目录,可通过以下链接获取 json 文件信息。(将用户名和仓库名替换为自己的)

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

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

示例

appcast.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
        }
    ]
}
上次更新: