electron 在Mac App Store之外分发:请删除前缀“开发者ID应用程序:“

wqlqzqxt  于 2023-11-15  发布在  Electron
关注(0)|答案(2)|浏览(230)

我想建立dmg目标分发应用程序的应用程序商店之外。
我看过文档:

我的配置:

"build": {
    "mac": {
      "target": [
        "dmg"
      ],
    },
  }

字符串
我使用以下命令:

CSC_NAME="Developer ID Application: Company Name (12345)" electron-builder --mac


我遇到了以下错误:⨯ Please remove prefix "Developer ID Application:" from the specified name — appropriate certificate will be chosen automatically
根据Apple文档,我必须使用Developer ID certificatehttps://developer.apple.com/developer-id/
如果我从CSC_NAME中删除了Developer ID Application:,则选择了Apple Distribution: Company Name (12345)
我应该如何指定一个证书名称来绕过上面的错误,并使用正确的证书来构建outside of App Store dmg,以便能够对应用程序进行公证?

*版本号:22.6.0
*Electron版本:8.2.5 *Electron类型(当前、beta、每晚)**:当前
*目标:dmg(Mac App Store外分发)

Github上的问题:https://github.com/electron-userland/electron-builder/issues/4935

shyt4zoc

shyt4zoc1#

您是否遵循了here的说明?这些说明在electron-builder文档中链接,用于签署和公证macOS应用程序。
你应该使用一个带有两个值的.env文件:APPLE_IDAPPLE_NOTARIZE_PW,这两个值在说明中的公证脚本中使用。这些说明对我有效,我没有使用任何名为CSC_NAME的参数。

t5zmwmid

t5zmwmid2#

好吧,所以这个问题花费了我相当多的时间,我大多感到无助,直到我最终找到了解决方案.这可能应该为每个人谁面对这个问题工作.
当我更新我的Apple Developer会员资格时,我发现我的帐户下已经有两个证书,所以我下载了它们并将它们添加到我的Keychain中。然而,Electron-builder在应用程序打包时拒绝拾取它们。它总是选择其他无关的证书。
然后我做的是create new certificates和下载这些.一旦我把它们添加到钥匙串,并重新运行Electron-builder,它立即拿起他们,并签署我的应用程序正确.
这些新证书和旧证书有什么区别呢?一个突出的问题是,这些新证书包含了它们的private key(就像GitHub上的一个用户提到的那样)。
所以这一定意味着我下载的前两个证书是用我的旧电脑创建的(几年前),所以当我从devevloper.apple.com下载它们时,它们的私钥并不存在。(别担心,这都在我分享的第一个链接的说明中),我相信它包含了我的旧证书没有的丢失的私钥。

--

  • 旁注(下一位稍微不相关):*

当Electron-builder成功挑选您的证书并尝试对您的应用程序进行签名时,您可能会被提示输入密钥密码以允许签名。在我的情况下,我不知道密码是什么(计算机密码不起作用),所以我改为:
1.去了钥匙串
1.展开证书以查看私钥
1.右键单击私钥
1.点击“获取信息”
1.将出现一个带有“访问控制”选项卡的小弹出窗口,单击“访问控制”选项卡并选择“允许所有应用程序访问此项目”
1.单击保存
1.它将提示您输入密码,但您的计算机密码将在这种情况下工作。
1.完成后,您可以再次运行Electron-Builder。
1.当然,在应用程序打包完成后,您可以返回撤消此设置。

相关问题