Slint Figma 插件发布指南:从构建到上架 Figma 官方商店的完整流程
【免费下载链接】slintSlint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C++, JavaScript, or Python apps.项目地址: https://gitcode.com/GitHub_Trending/sl/slint
本篇指南以
tools/figma-inspector/PUBLISH.md为核心,详细讲解 Slint 项目官方 Figma 插件「Figma to Slint」的发布流程:从前置条件(Figma 账号 2FA、团队管理员权限)、插件构建、manifest.json导入,到 Figma Desktop 中的「Manage Plugins → Publish」完整操作链。读完本文,你可以完整掌握该插件的打包产物结构、Figma 商店发布的每一步操作与失败排查要点,并能结合仓库源码理解manifest.json各字段与插件权限配置的对应关系。
为什么 Figma 插件发布必须人工操作
Figma 官方商店的发布流程是纯手动的,无法通过脚本或 CI 自动化完成。这是 Figma 平台本身的限制:发布动作必须在 Figma Desktop 应用内、以已登录且具备发布权限的账号身份执行,并经过人工填写表单、确认团队归属等环节。因此,任何自动化流水线都只能把插件构建产物准备到位,最后一步的「点下 Publish」必须由具备权限的维护者手动完成。
对应到当前仓库,插件的构建产物与发布元数据由以下文件控制:
- 发布说明原始文档:tools/figma-inspector/PUBLISH.md
- 插件功能与开发说明:tools/figma-inspector/README.md
- 插件清单与权限配置:tools/figma-inspector/figma.config.ts
- 构建配置:tools/figma-inspector/vite.config.ts 与 tools/figma-inspector/vite.config.code.ts
发布前置条件
在开始发布之前,必须确认以下两个账号层面的硬性要求,缺一不可:
- 拥有一个有效的 Figma 账号,且必须开启两步验证(2FA)。Figma 官方规定,未开启 2FA 的账号无法提交插件,这是发布环节的硬性门槛。
- 拥有 SixtyFPS GmbH 在 Figma 团队下的管理员(Admin)账号。只有团队管理员身份才能执行发布操作,普通成员或外部协作者没有 Publish 入口。
从仓库源码可以看出,该插件由 Slint 团队(SixtyFPS GmbH)官方维护,backend/code.ts 的文件头声明了版权归属SixtyFPS GmbH <info@slint.dev>,这也是发布表单中支持联系邮箱info@slint.dev的来源。
第一步:按 README 构建插件
发布前先完成插件的本地构建。构建入口与产物说明见 tools/figma-inspector/README.md 的Development章节,核心命令如下:
pnpm install # 首次安装依赖 pnpm build # 构建插件构建完成后,产物位于dist/目录,其中包含发布必需的 dist/manifest.json(由figma.config.ts生成)以及code.js(插件后端脚本)与index.html(插件 UI)。
关于manifest.json的字段,可以对照 tools/figma-inspector/figma.config.ts 理解:
| manifest 字段 | 配置值 | 含义 |
|---|---|---|
name | Figma to Slint | 插件在 Figma 商店中显示的名称 |
id | 1474418299182276871 | Figma 插件唯一 ID,商店链接依赖该 ID |
api | 1.0.0 | 使用的 Figma Plugin API 版本 |
main | code.js | 插件后端入口,对应vite.config.code.ts中打包的 backend/code.ts |
ui | index.html | 插件 UI 入口,由 Vite 单文件插件内联 |
editorType | ["figma", "dev"] | 同时支持 Figma 编辑器与 Dev 模式 |
capabilities | ["codegen", "vscode"] | 支持 Dev 模式代码生成与 VS Code 扩展集成 |
networkAccess | allowedDomains: ["none"] | 插件不发起任何网络请求,符合安全审查要求 |
documentAccess | dynamic-page | 仅按需访问动态页面内容 |
其中codegenLanguages声明了代码生成语言,codegenPreferences定义了插件设置项useVariables(是否将 Figma 变量引用为 Slint 属性路径),这两项直接对应 backend/code.ts 中读取figma.codegen.preferences.customSettings.useVariables的逻辑。
第二步:登录 Figma Desktop 并切换团队
- 打开Figma for Desktop,使用
@slint.dev域名下的账号登录(即满足 2FA 与团队管理员要求的那一个账号)。 - 检查左侧边栏(Left Sidebar)的团队下拉框,确保当前团队是 "SixtyFPS GmbH"。
这一步是发布流程中最容易被忽略的坑:Figma 默认会选中你个人的团队(Personal Team),而不是插件所属的组织团队。如果停留在个人团队下,后续发布表单中的 Publisher 下拉框将不会出现 "SixtyFPS GmbH" 选项。若发现下拉框缺少该团队,返回本步骤重新切换团队即可。
第三步:通过 manifest.json 打开插件
在 Figma for Desktop 中,通过以下方式加载本地构建的插件:
- 打开 dist/manifest.json 文件(即
pnpm build产出的 manifest)。 - Figma 会识别该 manifest 并注册插件,插件名称为
Figma to Slint。
这一机制与 README 中描述的「开发导入」一致:right-click → Plugins → Development → Import Plugin From Manifest...选择dist/manifest.json。发布场景与此相同,只是最终动作从「开发运行」变为「商店发布」。
第四步:进入 Manage Plugins 并选择发布
- 在 Figma for Desktop 顶部菜单选择Plugins → Manage Plugins...。
- 在插件列表中找到
Figma to Slint,点击其右侧的菜单按钮(三个点的省略号图标)。 - 在弹出的菜单中选择Publish,进入发布表单。
第五步:填写发布信息并确认归属
进入发布表单后,逐项核对以下内容:
- 确保所有字段均已填写完整,包括插件名称、描述、图标、封面图等商店展示信息。漏填任一必填项都会导致提交被拒绝。
- 支持联系(Support Contact)必须填写
info@slint.dev,该邮箱与仓库源码中插件版权声明一致(见 backend/code.ts 与 backend/utils/property-parsing.ts 的文件头)。 - 确认 Publisher 显示为 "SixtyFPS GmbH" 而非你的个人账号。这是发布归属的关键校验点——如果 Publisher 下拉框中没有 "SixtyFPS GmbH" 选项,请回到第二步确认当前处于该团队上下文。
第六步:提交发布
所有信息确认无误后,点击Publish提交。提交后插件进入 Figma 官方审核流程,审核通过后即可在 Figma Community 中搜索到该插件(当前商店 ID 为1474418299182276871,对应 tools/figma-inspector/figma.config.ts 中的id字段)。
发布前的自检清单与常见问题
结合发布流程与仓库源码,整理一份发布前的自检清单:
| 检查项 | 通过标准 |
|---|---|
| 2FA | Figma 账号已开启两步验证 |
| 团队身份 | 账号为 SixtyFPS GmbH 团队管理员 |
| 当前团队 | Figma Desktop 左侧边栏选中 "SixtyFPS GmbH" |
| 构建产物 | pnpm build成功,dist/manifest.json存在 |
| 插件已打开 | 通过dist/manifest.json成功加载Figma to Slint |
| 表单字段 | 名称、描述、图标等全部填写 |
| 支持邮箱 | info@slint.dev |
| Publisher | 显示为 SixtyFPS GmbH |
常见问题与排查方向:
- 发布菜单不出现或 Publisher 缺少 SixtyFPS GmbH:几乎都是团队上下文错误导致,回到第二步重新切换团队。
- 表单提交被拒绝:优先检查 2FA 是否开启、必填字段是否有遗漏、支持邮箱是否为
info@slint.dev。 - 发布后商店内搜索不到:Figma 商店存在审核周期,且插件 ID 与商店 URL 强绑定(即
manifest中的1474418299182276871),确认未在构建时被篡改。
小结
「Figma to Slint」插件的发布虽然全程依赖人工,但操作链路非常清晰:构建(pnpm build)→ 登录并切换团队 → 导入dist/manifest.json→ Manage Plugins 中选择 Publish → 填写并核验表单 → 提交。其中 2FA、团队管理员、Publisher 归属这三项是成败关键。仓库内 figma.config.ts 完整定义了插件的名称、ID、能力与权限,是发布表单与商店页信息的唯一事实来源,任何发布前的配置修改都应从该文件入手,并重新执行pnpm build生成最新的dist/manifest.json。
【免费下载链接】slintSlint is an open-source declarative GUI toolkit to build native user interfaces for Rust, C++, JavaScript, or Python apps.项目地址: https://gitcode.com/GitHub_Trending/sl/slint
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考