發(fā)布插件

目錄

  1. 入門

    1. 插件基礎(chǔ)
    2. 您的第一個(gè)插件
    3. 開發(fā)環(huán)境
    4. 調(diào)試
    5. Action API
    6. 發(fā)布插件
  2. 高級(jí)

    1. 插件捆綁
    2. 插件,腳本和命令
    3. 插件位置
    4. 更多關(guān)于CocoaScript
    5. SketchTool

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佳励,則安裝將不起作用休里。

原文:https://developer.sketchapp.com/guides/preferences/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赃承,隨后出現(xiàn)的幾起案子妙黍,更是在濱河造成了極大的恐慌,老刑警劉巖瞧剖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拭嫁,死亡現(xiàn)場離奇詭異,居然都是意外死亡抓于,警方通過查閱死者的電腦和手機(jī)做粤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捉撮,“玉大人怕品,你說我怎么就攤上這事〗碓猓” “怎么了肉康?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灼舍。 經(jīng)常有香客問我吼和,道長,這世上最難降的妖魔是什么骑素? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任纹安,我火速辦了婚禮,結(jié)果婚禮上砂豌,老公的妹妹穿的比我還像新娘厢岂。我一直安慰自己,他們只是感情好阳距,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布塔粒。 她就那樣靜靜地躺著,像睡著了一般筐摘。 火紅的嫁衣襯著肌膚如雪卒茬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天咖熟,我揣著相機(jī)與錄音圃酵,去河邊找鬼。 笑死馍管,一個(gè)胖子當(dāng)著我的面吹牛郭赐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播确沸,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼捌锭,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼俘陷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起观谦,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤拉盾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后豁状,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捉偏,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年泻红,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了夭禽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡承桥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出根悼,到底是詐尸還是另有隱情凶异,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布挤巡,位于F島的核電站剩彬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏矿卑。R本人自食惡果不足惜喉恋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望母廷。 院中可真熱鬧轻黑,春花似錦、人聲如沸琴昆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽业舍。三九已至抖拦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間舷暮,已是汗流浹背态罪。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留下面,地道東北人复颈。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像沥割,于是被迫代替她去往敵國和親券膀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子君纫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345