我不知道为什么electron-builder
找不到有效的身份。
使用环境变量进行调试,我总是以同样的问题结束,它说没有有效的标识,尽管在下面列出了一个有效的标识。
- 我试过将cert名称指定为json包中顶级密钥“mac”的“identity”属性,并将其删除。
- 我尝试指定密钥链(CSC_KEYCHAIN)登录。
- 我试过在登录、系统和自定义钥匙链中添加“开发者ID应用程序:*”证书(我不知道为什么电子构建器一直在制作额外的钥匙链,名为“1”)。
- 我已经尝试添加一个“苹果根CA”所有这些钥匙链从上一行。
- 我已经尝试指定并省略CSC_NAME、CSC_LINK + CSC_KEY_PASSWORD。
- 我已尝试将CSC_IDENTITY_DISCOVERY设置为false。
从这个page运行命令行似乎可以工作(因为运行spctl -a -t exec -vv 'Appname.dmg'
会返回“source=Unnotarized Developer ID”),但我想遵循基于electron-builder #3870的here建议的自动公证过程
当我在package json
中指定标识时,我最接近的说法是,
Identity name is specified, but no valid identity with this name in the keychain identity=***** allIdentities=
1) BBBBBBBBB "Developer ID Application: ***** (XXXXX)"
1 identities found
Valid identities only
1) BBBBBBBBBB "Developer ID Application: ***** (XXXXX)" <---lists the exact one above
1 valid identities found
at/........
字符串
当我运行安全find-identity -v
或security find-identity -v -p codesigning
时,完全相同的证书再次出现。
我错过什么了吗?
1条答案
按热度按时间s71maibg1#
我有一个类似的问题,它花费了我相当多的时间,直到我最终找到了解决方案。这可能应该为每个人谁面对这个问题的工作。
当我更新我的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.当然,在应用程序打包完成后,您可以返回撤消此设置。