首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac上与电子生成器协同设计Windows版本,但不起作用

在Mac上与电子生成器协同设计Windows版本,但不起作用
EN

Stack Overflow用户
提问于 2018-08-19 02:29:27
回答 2查看 7K关注 0票数 5

我得到了一个问题代码--使用苹果生成的.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中的样子

代码语言:javascript
复制
"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文件的外观,其中我为电子构建器加载环境变量:

代码语言:javascript
复制
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]

最后,下面是我运行的纱线命令来打包构建(这是在一个纱线脚本中)

代码语言:javascript
复制
export $(grep -v '^#' ./path/t/my/env/file/staging.env | xargs) && electron-builder -p never -mw --ia32 

我不知道我在这里错过了什么?有人知道我还需要做些什么吗?谢谢!:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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更容易:他们只是通过认证邮件发送密码给你,你去邮局,出示你的身份证去取它,然后你得到你的签名证书。

票数 5
EN

Stack Overflow用户

发布于 2021-04-17 10:56:07

对于任何在Mac上使用证书的人来说,以下是对我有用的方法:(我最终通过windows获得了证书,通过Mac获得证书太麻烦了)

  1. 在Windows上使用IE11请求证书(它应该通过您喜欢的证书推荐网站自动生成证书(我使用Comodo,因为您不需要等待他们发送USB棒)
  2. 一旦他们向您颁发证书,使用您的证书提供者发送给您的电子邮件链接,并使用您请求的浏览器打开。它应该说“成功”,但其他任何视觉效果都不会发生。
  3. 打开IE设置,在“content”中找到证书,然后用私钥作为.PFX导出。(您需要指定密码)
  4. 将证书复制到Mac上,并在密钥链中打开。
  5. 最后,您现在可以以.p12 format导出它,并按应用程序中指定的方式保存到dir中,并通过build命令构建/签名应用程序。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51913963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档