在 Mac 上使用 Electron-builder 共同设计 Windows 版本,但不起作用

Ant*_*rio 4 windows electron electron-builder

我在 Mac 上使用 Apple 生成并存储在 Mac 钥匙串中的 .p12 证书对 Windows .exe 版本进行代码签名时遇到问题。

我的电子构建器版本是: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
  },
Run Code Online (Sandbox Code Playgroud)

这也是我的 .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]
Run Code Online (Sandbox Code Playgroud)

最后,这是我运行的用于打包构建的纱线命令(这是在纱线脚本中)

export $(grep -v '^#' ./path/t/my/env/file/staging.env | xargs) && electron-builder -p never -mw --ia32 
Run Code Online (Sandbox Code Playgroud)

我不确定我在这里缺少什么?有没有人知道我还需要做什么?谢谢!:)

gal*_*ben 5

据我了解,您必须使用兼容的证书:

https://www.electron.build/code-signing

要在 Windows 上签署应用程序,有两种类型的证书:

EV 代码签名证书

代码签名证书

个人很难获得正确的证书。适用于 Windows 的证书并不容易获得,我必须通过大量文书工作才能完成。我希望这篇文章能让你的生活更轻松:https : //blog.dcpos.ch/how-to-make-your-electron-app-sexy

转到部分:签名安装程序

引用文章:

要获得 Windows 签名证书,我们推荐 Digicert。Windows 应用程序签名的文档非常糟糕。如果您选择了错误的供应商,他们会要求您将经过公证的文件邮寄给他们。这使得获得证书成为一个缓慢而烦人的过程。Digicert 更简单:他们只需通过 Certified Mail 向您发送密码,您去邮局,出示您的身份证件即可领取,然后,您将获得签名证书。