我们都知道,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破解版可以在这里下载。
本文来自作者同步博客