我想建立dmg
目标分发应用程序的应用程序商店之外。
我看过文档:
- https://www.electron.build/code-signing
- Notarize app for macOS https://github.com/electron-userland/electron-builder/issues/3870
- https://developer.apple.com/developer-id/的
我的配置:
"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 certificate
https://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
2条答案
按热度按时间shyt4zoc1#
您是否遵循了here的说明?这些说明在
electron-builder
文档中链接,用于签署和公证macOS应用程序。你应该使用一个带有两个值的.env文件:
APPLE_ID
和APPLE_NOTARIZE_PW
,这两个值在说明中的公证脚本中使用。这些说明对我有效,我没有使用任何名为CSC_NAME
的参数。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.当然,在应用程序打包完成后,您可以返回撤消此设置。