我們都知道,sketch的有效license與版本掛鉤。最近設(shè)計(jì)師又更新了sketch版本,導(dǎo)致她生成的源文件我都無(wú)法打開。
畢竟我不是使用sketch進(jìn)行UI設(shè)計(jì),僅用它來(lái)查看設(shè)計(jì)稿參數(shù),再花99美刀實(shí)在很不劃算。而sketch導(dǎo)出html的方式體驗(yàn)非常不好,因此我只好退而求其次,讓我舊版本的sketch能夠打開新版本的sketch源文件就好。
分析
經(jīng)過(guò)一番資料查閱,我發(fā)現(xiàn):sketch文件實(shí)際上是一個(gè)使用zip打包的文件包。這個(gè)文件包里面有定義生成該文件的sketch版本以及能夠打開該文件的sketch版本。
既然如此,我使用zip解壓設(shè)計(jì)師給我的新版本設(shè)計(jì)稿源文件,發(fā)現(xiàn)其中有meta.json包含了上述信息。其中commit、build、appVersion以及version字段為所有相關(guān)字段。修改這些字段在保存回去就可實(shí)現(xiàn)低版本的sketch打開該文件。
經(jīng)過(guò)測(cè)試,版本號(hào)43到最新的45.1的sketch均支持使用該方法實(shí)現(xiàn)源文件的轉(zhuǎn)換。
由于我的版本為44.1,參數(shù)值為:
commit:"10b2b021ddaac63eb3f52ce0b42edfb625ca194b"
appVersion:"44.1"
build:41455
version:91
實(shí)現(xiàn)
知道了前因后果,解決問(wèn)題就簡(jiǎn)單了。作為程序員,我選擇使用shell腳本實(shí)現(xiàn)該方案。
關(guān)鍵代碼如下:

可以從百度云盤下載完整文件(sketch-saver)
使用方法
從云盤下載sketch-saver后,為該腳本增加執(zhí)行權(quán)限:
chmod 755 ./sketch-saver
最好把該腳本存放在終端可以直接搜索到的目錄里面,例如:/usr/local/bin,這樣只要打開了終端就可以使用下面命令修改高版本的sketch源文件了。
sketch-saver <path-of-sketch-source-file>
執(zhí)行結(jié)果如下:

如圖所示,test.sketch為輸入,輸出為test-44.1.sketch。后者可以被我的sketch打開了。
最后
目前我所使用的44.1的sketch破解版可以在這里下載。
本文來(lái)自作者同步博客