设置
支持 macOS 和 Windows 代码签名。如果在您的 package.json 中正确提供了配置值,则应自动执行签名。
环境变量名 | 描述 |
---|---|
CSC_LINK |
证书(*.p12 或 *.pfx 文件)的 HTTPS 链接(或 base64 编码数据,或 file:// 链接,或本地路径)。支持简写 ~/ (home 目录)。 |
CSC_KEY_PASSWORD |
用于解密 CSC_LINK 中给出的证书的密码。 |
CSC_NAME |
仅 macOS 证书名称(从 login.keychain 中检索)。如果您有多个身份(否则不要指定),则在开发机器(而非 CI)上很有用。 |
CSC_IDENTITY_AUTO_DISCOVERY |
true 或 false 。默认为 true — 在 macOS 开发机器上,将自动使用您钥匙串中有效且合适的身份。 |
CSC_KEYCHAIN |
钥匙串名称。如果未指定 CSC_LINK ,则使用此项。默认为系统默认钥匙串。 |
提示
如果您要将应用程序包装到安装程序 (pkg) 中,则需要在您的钥匙串中拥有 INSTALLER ID
身份,或者提供相应的 CSC_INSTALLER_LINK
和 CSC_INSTALLER_KEY_PASSWORD
。
提示
如果您在 macOS 上构建 Windows,并且需要设置不同的证书和密码(而不是在 CSC_*
环境变量中设置的证书和密码),则可以使用 WIN_CSC_LINK
和 WIN_CSC_KEY_PASSWORD
。
Travis、AppVeyor 和其他 CI 服务器¶
要在构建服务器上签名应用程序,您需要设置 CSC_LINK
、CSC_KEY_PASSWORD
- 导出证书。考虑不要在密码中使用特殊字符(对于 bash[1]),因为“当执行构建时,值不会被转义”。
- 将文件编码为 base64 (macOS:
base64 -i yourFile.p12 -o envValue.txt
, Linux:base64 yourFile.p12 > envValue.txt
)。
或上传 *.p12
文件(例如,在 Google Drive 上,使用 direct link generator 获取正确的下载链接)。
- 设置
CSC_LINK
和CSC_KEY_PASSWORD
环境变量。请参阅 Travis 或 AppVeyor 文档。建议在 CI 项目设置中设置,而不是在.travis.yml
/appveyor.yml
中设置。如果您使用文件链接(而不是 base64 编码数据),请确保相应地转义特殊字符(对于 bash[1])。
如果使用 AppVeyor,请不要忘记单击锁定图标以“切换变量加密”。
请记住,Windows 无法处理超过 8192 个字符的环境变量值,因此如果您的证书的 base64 表示形式超过该限制,请尝试重新导出证书,而不要包含证书路径中的所有证书(它们不是必需的,但证书管理器导出向导默认选中该选项),否则编码值将被截断。
[1] printf "%q\n" "<url>"
在哪里购买代码签名证书¶
请参阅 获取代码签名证书,用于 Windows(平台:“Microsoft Authenticode”)。请注意 — Gatekeeper 仅识别 Apple 数字证书。
代码签名的替代方法¶
通过 Electron Builder 的配置(通过 package.json)进行代码签名不是签名应用程序的唯一方法。有些人发现使用 GUI 工具进行代码签名更容易。一些示例包括:- SSL manager - DigiCert utility for Windows 当然,对这些工具的任何全面讨论都超出了本文档的范围。