Sketch插件列在GitHub存储库中。本文档解释了如何在那里发布它以及如何让Sketch接收插件的更新。
Sketch插件列在GitHub存储库中:https://github.com/sketchplugins/plugin-directory。
要将您的插件添加到列表中,请使用关于您的插件的信息打开PR。合并后,您的插件将显示在此处:https://sketchapp.com/extensions/plugins/
如果您使用skpm
,第一次使用插件发布skpm publish
,它会自动为您创建PR。
从Sketch v45起,Sketch提供了官方支持的机制来更新应用程序中的插件。
如果您的插件已经内置了自己的更新机制,我们鼓励您转向使用新系统。这将改善用户体验,因为用户将能够在应用程序的“首选项”面板中管理选项卡内的所有已安装插件。
启动时,我们检查所有安装插件的更新,如果有任何问题,我们会在Sketch的窗口上显示一个徽章。点击它会让用户访问应用程序的首选项,在那里他们将能够更新他们的插件。
目前Sketch只允许用户更新到最新版本。将来的Sketch版本可能会为用户提供更多的选项来选择可以下载和安装哪个插件版本。
您有两种解决方案可以选择使用此更新机制:
skpm
通过运行skpm publish
,它会自动发布插件的更新版本,并确保Sketch可以提取它。
manifest.json
包含在您的插件包中的文件中有一个额外的条目,您需要定义更新才能正常工作。
该条目被调用appcast
,它是一个指定appcast文件的URL的字符串。
appcast.xml
文件appcast文件包含有关插件更新的信息,例如可用更新的版本以及可从中下载更新的位置。Sketch下载此文件以确定是否有可用的插件更新。
Appcast符合Sparkle文档和发布更新页面中描述的Sparkle定义的appcast 。对于Sketch插件,仅支持.zip文件作为附件。
当用于插件时,最小和最大系统版本不涉及操作系统的版本。究竟如何将它们用于更高版本的Sketch中仍未确定。
以下Appcast示例列出了插件的三个不同版本。每个版本都有自己的下载链接和简要说明文字。
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Hello World Sketch Test Plugin</title>
<link>http://sparkle-project.org/files/sparkletestcast.xml</link>
<description>Brilliant Hello World Plugin</description>
<language>en</language>
<item>
<title>Version 1.1</title>
<description>
<![CDATA[
<ul>
<li>Minor update v1.1</li>
</ul>
]]>
</description>
<enclosure url="https://brillianthello.sketchplugins.com/files/HelloWorldSketchPluginTestv11.zip" sparkle:version="1.1" />
</item>
<item>
<title>Version 1.2</title>
<description>
<![CDATA[
<ul>
<li>Minor update v1.2</li>
</ul>
]]>
</description>
<enclosure url="https://brillianthello.sketchplugins.com/files/HelloWorldSketchPluginTestv12.zip" sparkle:version="1.2" />
</item>
<item>
<title>Version 2.0</title>
<description>
<![CDATA[
<ul>
<li>Major update v2.0</li>
</ul>
]]>
</description>
<enclosure url="https://brillianthello.sketchplugins.com/files/HelloWorldSketchPluginTestv20.zip" sparkle:version="2.0" />
</item>
</channel>
</rss>
如果你的插件做了任何需要初始化的事情,你应该把这个Startup
处理器作为插件的一部分。执行Shutdown
处理程序也是一样,你应该实现你的插件需要的任何清理代码。你可能已经在使用这些事件,但是插件更新比以前更重要。
当插件更新时,正在更新的版本将发送该Shutdown
操作。新版本将发送一个Startup
动作。
例如,如果您的插件在Sketch中显示了一些用户界面元素,则应删除Shutdown
处理程序中的那些元素。通过这种方式,新插件将能够显示已更新的用户界面组件以及所有旧用户界面元素已被删除。
对于插件所维护的任何持久数据也是如此。任何未保存的信息应在Shutdown
调用时写入磁盘。
不要在Startup
可以稍后运行的处理程序中包含代码。
所以你已经遵循了所有的步骤,你的插件还没有更新?试试这些:
PluginsWarehouse
居住的文件夹。这是我们缓存插件下载的地方,如果您已经测试了不同版本的appcast,那么您可能在那里有一些值得清理的旧东西。~/Library/Application Support/com.bohemiancoding.sketch3/
manifest.json
您下载的ZIP中有与您的appcast中的版本号相匹配的版本号。如果appcast表示ZIP包含v1.2,但实际的ZIP表示它是v1.1,则安装将不起作用。原文:https://developer.sketchapp.com/guides/preferences/