目錄
-
入門
-
高級(jí)
Sketch插件列在GitHub存儲(chǔ)庫中。本文檔解釋了如何在那里發(fā)布它以及如何讓Sketch接收插件的更新袄琳。
第一次發(fā)布
Sketch插件列在GitHub存儲(chǔ)庫中:https://github.com/sketchplugins/plugin-directory河闰。
要將您的插件添加到列表中劣针,請(qǐng)使用關(guān)于您的插件的信息打開PR拿撩。合并后怔软,您的插件將顯示在此處:https://sketchapp.com/extensions/plugins/
如果您使用skpm
垦细,第一次使用插件發(fā)布skpm publish
,它會(huì)自動(dòng)為您創(chuàng)建PR挡逼。
發(fā)布更新
從Sketch v45起括改,Sketch提供了官方支持的機(jī)制來更新應(yīng)用程序中的插件。
如果您的插件已經(jīng)內(nèi)置了自己的更新機(jī)制家坎,我們鼓勵(lì)您轉(zhuǎn)向使用新系統(tǒng)嘱能。這將改善用戶體驗(yàn),因?yàn)橛脩魧⒛軌蛟趹?yīng)用程序的“首選項(xiàng)”面板中管理選項(xiàng)卡內(nèi)的所有已安裝插件虱疏。
啟動(dòng)時(shí)惹骂,我們檢查所有安裝插件的更新,如果有任何問題做瞪,我們會(huì)在Sketch的窗口上顯示一個(gè)徽章对粪。點(diǎn)擊它會(huì)讓用戶訪問應(yīng)用程序的首選項(xiàng),在那里他們將能夠更新他們的插件装蓬。
目前Sketch只允許用戶更新到最新版本著拭。將來的Sketch版本可能會(huì)為用戶提供更多的選項(xiàng)來選擇可以下載和安裝哪個(gè)插件版本。
您有兩種解決方案可以選擇使用此更新機(jī)制:
1.使用 skpm
通過運(yùn)行skpm publish
牍帚,它會(huì)自動(dòng)發(fā)布插件的更新版本儡遮,并確保Sketch可以提取它。
2.手動(dòng)
manifest.json
包含在您的插件包中的文件中有一個(gè)額外的條目暗赶,您需要定義更新才能正常工作鄙币。
該條目被調(diào)用appcast
肃叶,它是一個(gè)指定appcast文件的URL的字符串。
appcast.xml
文件
appcast文件包含有關(guān)插件更新的信息十嘿,例如可用更新的版本以及可從中下載更新的位置被环。Sketch下載此文件以確定是否有可用的插件更新。
Appcast符合Sparkle文檔和發(fā)布更新頁面中描述的Sparkle定義的appcast 详幽。對(duì)于Sketch插件,僅支持.zip文件作為附件浸锨。
當(dāng)用于插件時(shí)唇聘,最小和最大系統(tǒng)版本不涉及操作系統(tǒng)的版本。究竟如何將它們用于更高版本的Sketch中仍未確定柱搜。
以下Appcast示例列出了插件的三個(gè)不同版本迟郎。每個(gè)版本都有自己的下載鏈接和簡要說明文字。
<?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>
在您的插件中實(shí)現(xiàn)啟動(dòng)和關(guān)閉方法
如果你的插件做了任何需要初始化的事情聪蘸,你應(yīng)該把這個(gè)Startup
處理器作為插件的一部分宪肖。執(zhí)行Shutdown
處理程序也是一樣,你應(yīng)該實(shí)現(xiàn)你的插件需要的任何清理代碼健爬。你可能已經(jīng)在使用這些事件控乾,但是插件更新比以前更重要。
當(dāng)插件更新時(shí)娜遵,正在更新的版本將發(fā)送該Shutdown
操作蜕衡。新版本將發(fā)送一個(gè)Startup
動(dòng)作。
例如设拟,如果您的插件在Sketch中顯示了一些用戶界面元素慨仿,則應(yīng)刪除Shutdown
處理程序中的那些元素。通過這種方式纳胧,新插件將能夠顯示已更新的用戶界面組件以及所有舊用戶界面元素已被刪除镰吆。
對(duì)于插件所維護(hù)的任何持久數(shù)據(jù)也是如此。任何未保存的信息應(yīng)在Shutdown
調(diào)用時(shí)寫入磁盤跑慕。
不要在Startup
可以稍后運(yùn)行的處理程序中包含代碼万皿。
故障排除
所以你已經(jīng)遵循了所有的步驟,你的插件還沒有更新核行?試試這些:
- 刪除
PluginsWarehouse
居住的文件夾相寇。這是我們緩存插件下載的地方,如果您已經(jīng)測試了不同版本的appcast钮科,那么您可能在那里有一些值得清理的舊東西唤衫。~/Library/Application Support/com.bohemiancoding.sketch3/
- 確保
manifest.json
您下載的ZIP中有與您的appcast中的版本號(hào)相匹配的版本號(hào)。如果appcast表示ZIP包含v1.2绵脯,但實(shí)際的ZIP表示它是v1.1佳励,則安裝將不起作用休里。