我有一个使用npm run ewin在Windows上编译的电子应用程序
"scripts": {
"start": "electron main.js",
"pack": "build",
"ewin": "build --win --ia32 --x64",
"ewinsign": "export CSC_LINK=file:///${HOME}/certificates/certificate.pfx; export CSC_KEY_PASSWORD=\"$( cat ${HOME}/certificates/certificates_pw.txt )\"; npm run clean:win && build --win --ia32 --x64",
},因此,我添加了ewinsign,试图让它签署应用程序。
我将ewinsign建立在以下讨论的基础上:https://discuss.atom.io/t/signing-windows-app-installer/32511
此错误导致ewinsign失败:
'export' is not recognized as an internal or external command,
operable program or batch file.我并没有真正期望它能够工作,因为我正在Windows上运行我的构建,而bash命令通常在Windows上不可用。
签署Windows应用程序应该是一个众所周知的解决方案,所以我不太愿意开始自己的解决方案。
总结如下:
${HOME}/certificates/certificate.pfx${HOME}/certificates/certificate_pw.txtnpm run ewin构建未签名的文件。我如何添加一个ewinsign命令来构建一个签名的Windows应用程序?
发布于 2017-05-26 23:40:44
最后,我编写了一个设置环境变量的bat脚本包装器。这更容易调试,因为我可以添加env语句来查看环境变量设置为什么。
下面是脚本:
set CSC_LINK=file://%USERPROFILE%/certificates/certificate.pfx
set /p CSC_KEY_PASSWORD=<"%USERPROFILE%/certificates/certificates_pw.txt"
npm run ewin特别要注意的是将文件读入变量的=<批处理语法。以及只读取一行的/p语法。
发布于 2017-04-14 13:45:28
如果您想使用该命令并尝试使用windows替换,您将查找以下内容:
set是用来创建windows环境变量(而不是导出)的命令。type相当于用于windows的bash 'cat‘。%USERPROFILE%来获取该值。生成的代码如下所示:
"ewinsign": "set CSC_LINK=file:///%USERPROFILE%/certificates/certificate.pfx; set CSC_KEY_PASSWORD=\"$( type %USERPROFILE%/certificates/certificates_pw.txt )\"; npm run clean:win && build --win --ia32 --x64"
但是,我还没有测试过这段代码,所以我不确定它是否能工作。
现在,我还没有用电子构建器签名的代码,但我假设您将使用windows构建选项来强制执行证书。这将在package.json文件的"build“部分中设置:
"build":{
"appid":"yourid",
"asar": true,
"forceCodeSigning": true,
"win":{
"target": "...",
"publisherName": "..."
"certificateFile": "...",
"certificatePassword":"...",
"certificateSubjectName":"...",
"certificateSha1":"...",
"signingHashAlgorithms":"..."
}
}您可能需要使用这些值才能正常工作,但根据文档,这就是我所要做的。引用父选项这里
https://stackoverflow.com/questions/43393194
复制相似问题