我們都知道,sketch的有效license與版本掛鈎。最近設計師又更新了sketch版本,導致她生成的源文件我都無法打開。
畢竟我不是使用sketch進行UI設計,僅用它來查看設計稿參數,再花99美刀實在很不划算。而sketch導出html的方式體驗非常不好,因此我只好退而求其次,讓我舊版本的sketch能夠打開新版本的sketch源文件就好。
分析
經過一番資料查閱,我發現:sketch文件實際上是一個使用zip打包的文件包。這個文件包里面有定義生成該文件的sketch版本以及能夠打開該文件的sketch版本。
既然如此,我使用zip解壓設計師給我的新版本設計稿源文件,發現其中有meta.json包含了上述信息。其中commit、build、appVersion以及version字段為所有相關字段。修改這些字段在保存回去就可實現低版本的sketch打開該文件。
經過測試,版本號43到最新的45.1的sketch均支持使用該方法實現源文件的轉換。
由於我的版本為44.1,參數值為:
commit:"10b2b021ddaac63eb3f52ce0b42edfb625ca194b" appVersion:"44.1" build:41455 version:91
實現
知道了前因后果,解決問題就簡單了。作為程序員,我選擇使用shell腳本實現該方案。
關鍵代碼如下:
可以從百度雲盤下載完整文件(sketch-saver)
使用方法
從雲盤下載sketch-saver后,為該腳本增加執行權限:
chmod 755 ./sketch-saver
最好把該腳本存放在終端可以直接搜索到的目錄里面,例如:/usr/local/bin
,這樣只要打開了終端就可以使用下面命令修改高版本的sketch源文件了。
sketch-saver <path-of-sketch-source-file>
執行結果如下:
如圖所示,test.sketch為輸入,輸出為test-44.1.sketch。后者可以被我的sketch打開了。
最后
目前我所使用的44.1的sketch破解版可以在這里下載。
本文來自作者同步博客