在Mac上无法与Electronic-builder共同设计Windows版本,

时间:2018-08-19 02:29:28

标签: windows electron electron-builder

我在使用Mac上使用Apple生成并存储在Mac钥匙串中的.p12证书在Mac上对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
  },

这也是我的.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]

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

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

我不确定这里缺少什么吗?有人会想到我还需要做什么吗? 谢谢! :)

2 个答案:

答案 0 :(得分:3)

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

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

  

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

     

EV代码签名证书

     

代码签名证书

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

转到“已签名的安装程序”部分

引用该文章:

  

要获取Windows签名证书,建议使用Digicert。的   Windows应用程序签名的文档非常糟糕。如果你走的话   使用错误的供应商,他们会要求您邮寄经过公证的   文书工作。这使得获取证书的过程缓慢而烦人。   Digicert更容易:他们只是通过认证邮件向您发送密码,   你去邮局,出示你的身份证去取,然后ba,   获得您的签名证书。

答案 1 :(得分:0)

对于在 Mac 上实际获取证书时遇到问题的任何人,以下是对我有用的方法:(我最终通过 Windows 获取它,通过 Mac 获取证书太麻烦了)

  1. 在 Windows 上使用 IE 11 来请求证书(它应该生成它 自动通过您首选的证书提供者网站(我使用 Comodo,因为您无需等待他们发​​送 USB 记忆棒)
  2. 一旦他们向您颁发证书,请使用您的证书提供商发送给您的电子邮件链接,并使用您请求它的相同浏览器打开。它应该说“成功”,但在视觉上不会发生任何其他事情。
  3. 打开 IE 设置,在“内容”中找到证书并导出为带有私钥的 .PFX。 (您需要指定密码)
  4. 将证书复制到您的 Mac,然后在钥匙串中打开。
  5. 最后,您现在可以将其导出为 .p12 格式并保存到您在应用中指定的目录中,然后通过您的构建命令构建/签署应用。

如果有人知道更简单的方法,请分享!