我们都知道,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破解版可以在这里下载。

本文来自作者同步博客

让44.1版本的sketch打开更高版本的sketch文件的更多相关文章

  1. CMake版本低,需要更高版本.

    https://blog.csdn.net/qq_34935373/article/details/90266958 使用cmake命令安装Opencv软件时,报如下错误: CMake Error a ...

  2. 程序包需要 NuGet 客户端版本“2.12”或更高版本,但当前的 NuGet 版本为“2.8.50313.46”

    由于安装install-package newtonsoft.json 会出现需要 NuGet 客户端版本“2.12”或更高版本来安装,于是换成旧版的newtonsoft.json   PM> ...

  3. 关于IIS部署时出现“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”的问题解决摘要

    系统环境:windows2008 X64 IIS版本:iis7 oracle客户端版本:11g,另外装了32位的客户端. 网站.net framework版本: 4.0 目前状况,IIS可以正常运行, ...

  4. 【转】NPAPI 插件无法在 Chrome 42 版及更高版本上正常运行

    原文网址:https://support.google.com/chrome/answer/6213033 NPAPI 插件无法在 Chrome 42 版及更高版本上正常运行 您可以利用插件在浏览器中 ...

  5. VC6的工程转到VC2010或更高版本出现fatal error C1189编译错误的解决方法

    以前也遇到过,当时解决了没写下来,这次正好又遇到了,就顺手写一下吧,别下次又忘记了. 当VC6的工程转到VC2010或更高版本时编译出现如下错误: c:\program files\microsoft ...

  6. EBS报错FRM-92095:Oracle JInitiator版本太旧,请安装版本1.1.8.2或更高版本

    EBS打开报错FRM-92095:Oracle JInitiator版本太旧,请安装版本1.1.8.2或更高版本 打开EBS的form,系统报错,中文提示信息是:FRM-92095:oracle ji ...

  7. 解决“System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本”

    问题描述:远程访问该数据库(客户端同样是Oracle11g)提示“System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本”. 解决的办法: 1.一定要关闭Win ...

  8. Win10安装.Net Framework4.7及更高版本

    问题描述 使用VS打开项目工程时,提示未安装.net framework4.7,但在启用或关闭windows功能里已经勾选了.net framework 4.7的全部功能. 直接从网上下载.net f ...

  9. 如何在Windows Server 2012及更高版本中将域控制器降级

    如何在Windows Server 2012及更高版本中将域控制器降级 如果不降级就重装系统,会出问题,所以在将域控系统重装系统之前一定要先降级. 使用服务器管理器将 Windows Server 2 ...

随机推荐

  1. 2017ecjtu-summer training # 9 HDU 4544

    湫湫系列故事--消灭兔子 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tota ...

  2. Effective Java 第三版——23. 优先使用类层次而不是标签类

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  3. c++extern关键字详解

    1 基本解释 :extern可以置于变量或者函数 前,以标示变量或者函数的定义在别的文件中 ,提示编译器遇到此变量和函数时在其他模块中寻找其定义 .此外extern也可用来进行链接指定. 也就是说ex ...

  4. callback和spring的MD5加密

    举个例子:当我们访问淘宝网站的时候,当点击购物车的时候,这个时候提示用户登录用户名和密码,登录成功后,会返回到购物车的页面.这就是回调. 它不返回淘宝的首页,而是返回到我们点击的内容所在页面. 在写接 ...

  5. RPM包效验

  6. [国嵌攻略][104][Linux内核模块设计]

    内核模块示例 #inlcude <linux/init.h> #inlcude <linux/module.h> static int hello_init(){ printk ...

  7. 改进ban冒泡排序

    设置一标志性变量pos,用于记录每趟排序中最后一次进行交换的位置.由于pos位置之后的记录均已交换到位,故在进行下一趟排序时只要扫描到pos位置即可. //改进后算法如下: function bubb ...

  8. android studio升级2.3后出现的问题

    报错: Error:Execution failed for task ':app:javaPreCompileDebug'. > Annotation processors must be e ...

  9. kafka producer生产数据到kafka异常:Got error produce response with correlation id 16 on topic-partition...Error: NETWORK_EXCEPTION

      kafka producer生产数据到kafka异常:Got error produce response with correlation id 16 on topic-partition... ...

  10. 阻止安卓实体返回键后退的网页js实现

    提供两种解决方法吧,都是网上来的,侵权删,毕竟我等只是搞后端的-- 第一种方法: // 阻止安卓实体键后退 // 页面载入时使用pushState插入一条历史记录 history.pushState( ...