11

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

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 中的证书。它的通用名称与我的命令行参数匹配:“开发人员 ID 安装程序:XYZ”。有没有办法调试这个特定的错误?

4

3 回答 3

10

我遇到过同样的问题。我的安装程序证书没有私钥。您可以通过打开钥匙串并查找您的证书来检查这一点,名称如下:

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

如果您附加了私钥,您应该会看到

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

如果您无法展开证书下的私钥,则意味着它丢失了。

然后要解决此问题,您必须使用您的 Apple ID 登录 developer.apple.com 并

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

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

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

https://developer.apple.com/account/mac/certificate/distribution/create

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

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

2d - 按照说明使用钥匙串创建证书请求

2e - 在苹果开发者中上传您的证书请求文件

2f - 在您的钥匙串中下载新创建的证书。

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

瞧,您可以签名。

于 2016-07-14T00:04:10.437 回答
7

检查钥匙串中的私钥。您需要密钥和证书来进行签名(Apple 将其称为“身份”)。

于 2014-01-21T02:50:38.417 回答
0

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

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

选择 Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority。

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

在 Common Name 字段中,输入密钥的名称(例如,Gita Kumar Dev Key)。

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

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

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

  • 最后 productsign --sign “开发者 ID 安装程序:您的开发者名称 (1A2B3C4D5E)” ~/Desktop/example.pkg ~/Desktop/signed-example.pkg

于 2019-07-23T21:27:07.583 回答