我得到了一个问题代码--使用苹果生成的.exe证书,并存储在Mac中,在Mac上对Windows构建进行签名。
我的电子构建器版本是: 20.28.1,我正在尝试运行的目标构建是一个Windows ia32构建。
协同设计工作的Mac应用程序很好。但是,在试图签署Windows版本时,它无法对其进行签名。
如果可能的话,我想尝试在macOS机器上对Windows进行签名,因为我已经在文档中看到了这是可能的(我希望我已经正确地读过了吗?)
在尝试协同设计之后,我使用:codesign -dv [path/to/app/appname].exe检查构建
并且总是得到(仅用于Windows,Mac应用程序签名很好):code object is not signed at all
我正在为Mac和Windows构建,但对于Windows,我目前只为ia32体系结构构建。下面是我的构建配置在package.json中的样子
"build": {
"appId": "[my-app-id]",
"files": [
"public/**/*",
"node_modules/**/*",
"package.json"
],
"directories": {
"buildResources": "build/resources"
},
"mac": {
"category": "public.app-category.productivity",
"target": [
"dmg",
"zip"
],
"publish": {
"provider": "s3",
"bucket": "[BUCKET_NAME]",
"path": "my-path"
}
},
"win": {
"target": [
{
"target": "nsis",
"arch": [
"ia32"
]
}
],
"publish": {
"provider": "s3",
"bucket": "[BUCKET NAME]",
"path": "my-path"
}
},
"extends": null
},下面也是我的.env文件的外观,其中我为电子构建器加载环境变量:
export ENV_NAME=staging
export CSC_NAME='[certificatename]' #example 1A3JKJD89O
export CSC_LINK=./path/to/mycert/cert.p12
export CSC_KEY_PASSWORD='my-passowrd'
export WIN_CSC_LINK=./path/to/mycert/cert.p12
export WIN_CSC_KEY_PASSWORD='my-passowrd'
export CSC_IDENTITY_AUTO_DISCOVERY=true
export DEBUG=electron-builder
export AWS_ACCESS_KEY_ID=[AWSKEYID]
export AWS_SECRET_ACCESS_KEY=[AWSSECRETACCESSKEY]
export AWS_S3_ENDPOINT=[S3ENDPOINT]最后,下面是我运行的纱线命令来打包构建(这是在一个纱线脚本中)
export $(grep -v '^#' ./path/t/my/env/file/staging.env | xargs) && electron-builder -p never -mw --ia32 我不知道我在这里错过了什么?有人知道我还需要做些什么吗?谢谢!:)
发布于 2018-08-19 16:09:28
据我所知,您必须使用兼容的证书:
https://www.electron.build/code-signing
要在Windows上签署应用程序,有两种类型的证书: EV代码签名证书 代码签名证书
亲自获得正确的证书是很困难的。一份适用于Windows的证书并不容易获得,我不得不通过大量的文书工作才能完成这一任务。我希望这篇文章能让你的生活更轻松:https://blog.dcpos.ch/how-to-make-your-electron-app-sexy
转到该部分:签名安装程序
引用该条:
要获得Windows签名证书,建议使用Digicert。Windows应用程序签名的文档非常糟糕。如果你找错了供应商,他们会要求你寄给他们公证的文件。这使得获得证书是一个缓慢而烦人的过程。Digicert更容易:他们只是通过认证邮件发送密码给你,你去邮局,出示你的身份证去取它,然后你得到你的签名证书。
发布于 2021-04-17 10:56:07
对于任何在Mac上使用证书的人来说,以下是对我有用的方法:(我最终通过windows获得了证书,通过Mac获得证书太麻烦了)
如果有人知道更简单的方法,请分享!
https://stackoverflow.com/questions/51913963
复制相似问题