Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos OS X productsign错误:找不到适当的签名标识_Macos_Pkg File - Fatal编程技术网

Macos OS X productsign错误:找不到适当的签名标识

Macos OS X productsign错误:找不到适当的签名标识,macos,pkg-file,Macos,Pkg File,我正在尝试使用命令行实用程序对OSX安装程序包进行签名,但出现错误 productsign --sign "Developer ID Installer: XYZ" input.pkg output.pkg productsign: error: Could not find appropriate signing identity for “Developer ID Installer: XYZ”. 当我打开Keychain Access时,我可以看到我在developer.apple.co

我正在尝试使用命令行实用程序对OSX安装程序包进行签名,但出现错误

productsign --sign "Developer ID Installer: XYZ" input.pkg output.pkg
productsign: error: Could not find appropriate signing identity for “Developer ID Installer: XYZ”.

当我打开Keychain Access时,我可以看到我在developer.apple.com上创建并导入到登录Keychain中的证书。它的通用名称与我的命令行参数“Developer ID Installer:XYZ”匹配。有没有办法调试此特定错误?

检查钥匙链中的私钥。您需要密钥和证书来进行签名(苹果称之为“身份”)。

我也有同样的问题。我的安装程序证书没有私钥。 您可以通过打开keychain来检查这一点,并查找您的证书,如:

开发者ID安装程序:我的公司(1258345791ZL)

如果您有一个私钥附加,您应该看到

开发者ID安装程序:我的公司(1258345791ZL) (!)私钥

如果无法展开证书下的私钥,则表示该私钥丢失

然后要解决这个问题,你必须使用你的苹果ID和密码登录到developer.apple.com

1-再次尝试删除并下载您的证书

2-如果这还不够,请按照以下步骤创建一个新的

2a-单击(+)或转到此处:

2b-指定生产/开发人员ID,然后按Continue

2c-指定“开发人员ID安装程序”

2d-遵循使用密钥链创建证书请求的说明

2e-在apple Developer中上载您的证书请求文件

2f-下载密钥链中新创建的证书

2g-清除所有其他安装程序证书以确保


等等,瞧,你可以签名。

我有这个问题,因为我没有私钥。最佳实践您将需要
CertificateSigningRequest.certSigningRequest
这与私钥一样好

  • 使用作为开发者帐户的apple ID登录developer.apple.com
  • (您可以使用Xcode,但这太难了,所以您可以在浏览器中登录到您的Apple开发者帐户)
  • 您可以查看现有证书并下载它们,但如果您没有这些证书的密钥,这对您没有什么好处
  • 告诉developer.apple.com您想创建一个新的开发者ID安装程序,您必须向它提供一个文件,说明如何在下面的步骤中创建
  • 启动钥匙链访问(这些指令大多是从苹果公司偷来的)
选择密钥链访问>证书助理>向证书颁发机构申请证书

在“证书助手”对话框中,在“用户电子邮件地址”字段中输入电子邮件地址

在公共名称字段中,输入密钥的名称(例如,Gita Kumar Dev密钥)

将CA电子邮件地址字段保留为空

选择“保存到磁盘”,然后单击“继续”

  • 将新创建的CertificateSigningRequest.certSigningRequest文件反馈给Safari
  • 下载生成的developerID_installer.cer(您现在有一个签名的开发者ID)
  • 双击它以将其添加到登录密钥链

  • 最后,productsign--签署“开发者ID安装程序:开发者姓名(1A2B3C4D5E)”~/Desktop/example.pkg~/Desktop/signed-example.pkg


您可以查看您的私钥吗?你需要证书和私钥来进行签名(苹果称之为“身份”)。谢谢,这就是问题所在!我在一台机器(有私钥)上生成了证书,并在另一台机器(没有私钥)上运行了productsign。请输入您的答案,我会将其标记为已接受。您能详细说明吗?私钥和公钥存储在哪里?例如,我备份了
.cer
文件。我买了一台新的mac电脑。我双击
.cer
文件。它安装在我的钥匙链上。我缺少什么?@gman你的
.cer
文件就是证书。希望您保留了旧钥匙链,如果是,请打开它并单击“钥匙”类别。您应该看到1+个私钥。如果他们有披露三角形,请打开这些三角形以查找您想要签署的证书。这将是私钥,您应该将其导入新Mac上的密钥链中。如果你没有钥匙链,无法从备份中检索,那么你需要上传一个新的钥匙并创建新的证书。为什么苹果需要让事情变得如此复杂?!?难以置信的什么是
1A2B3C4D5E