《从零开始的 PhotoShop CEP 6 开发教程》系列目录
「 0 」目录「 1 」配置开发环境「 2 」CEP 文件结构「 3 」CEP 的运行机制「 4 」Hello World !「 5 」事件(EVENTS)「 6 」调用 JSX 并传递信息「 7 」UI - HTML 开发的一些细节「 8 」API - 文件读写与二进制数据「 9 」签名打包与 ZXPSignCmd
这次来说说,CEP 扩展打包发布相关的事。
CEP 扩展必须有签名才能运行CEP 扩展必须有签名才能运行,而所谓签名是验证扩展文件是否与签名时一致的手段,能保证你的扩展不被篡改和识别扩展作者。所以你会发现修改了别人的扩展插件后,扩展就无法运行了。 不过在扩展开发者模式下, PhotoShop 会无视签名,关于打开发者模式,在「 1 」配置开发环境一文中介绍了。 这里提供 2 个 .reg 文件,在 Windows 下双击就能方便的开关开发者模式:
CEP 调试模式关闭.reg , CEP 调试模式打开.reg
签名方法签名分为和自签名证书(self-signed certificates)或者商业签名证书(commercial certificates), 商业签名可以(也仅可以)在下列数字签名提供商中购买:
- Chosen Security
- Thawte
- Globalsign
- Verisign
- Comodo
- Godaddy
商业证书在使用 Adobe Extension Manager 安装时不会有如下警告:
自签名证书警告
不过在 CC 2015 之后 Adobe Extension Manager 已经被移除了(Adobe 现在想让用户都从它的 Adobe Add-Ons 市场上购买、下载插件)
不用付钱我们也可以使用自签名证书,自签名证书可以使用 ZXPSignCmd 创建。
ZXPSignCmd
ZXPSignCmd
ZXPSignCmd 是 Adobe 官方发布的签名与打包的命令行工具,有 Windows 和 OSX 2 个平台的版本。这里先介绍使用 ZXPSignCmd 创建证书和打包的方法,如果觉得命令行工具麻烦,可以使用我制作的 GUI 版本,后面会介绍。
创建证书ZXPSignCmd -selfSignedCert
ZXPSignCmd -selfSignedCert
例子:
ZXPSignCmd -selfSignedCert CN Changsha nullice.com nullice 123456 我的证书.p12>
ZXPSignCmd -sign -tsa
ZXPSignCmd -sign -tsa
其中 -tsa
不需要可以省略。
ZXPSignCmd -sign "PS.fonTags\fonTags" "PS.fonTags\我的扩展.zxp" "我的证书.p12" "123456"
要注意的是这里输出文件路径如果已经存在了一个文件的话(比如曾经打包的),ZXPSignCmd 是不会自己覆盖它的,需要自己手动删除。
打包后输出的文件是 ZIP 格式的,可以用 ZIP 解压缩工具解压。
注意打包后插件目录中文件就不可以修改或者删减了,否则都会使签名验证失败。 这意味着你的扩展不能在插件目录中存储用户数据或者下载内容。 要存储这些扩展运行中产生的数据,请存储到类似 cs.getSystemPath(SystemPath.USER_DATA)
的系统目录中去(详见「 8 」API - 文件读写与二进制数据一文的文件路径部分),总之就是不要让你的扩展在扩展目录中产生数据,或者修改自己的文件。
所以目前的扩展主流是自己发布文件让
- 用户自己复制文件到扩展安装目录
- 用户执行 .JSX、.Bat 脚本,帮助用户一键复制文件到扩展安装目录
- 自己制作一个安装器软件
- Adobe Extension Manager 的开源替代品 :ZXPInstaller
其中 ZXPInstaller 是一个功能和 Adobe Extension Manager 差不多的软件,不过 40 多 MB 的体积真不想跟用户说下个几 MB 的扩展前先装个这家伙...
ZXPInstaller