配置文件 "XXXXXX" 不包含签名证书 "iPhone Distribution: XXXXXXXXXX (XXXXXXXXXX)"。

Provisioning profile "XXXXXX" doesn't include signing certificate "iPhone Distribution: XXXXXXXXXX (XXXXXXXXXX)".

有人要求我更新 objective-c 中完成的旧项目。

我的分发配置文件有这个问题。它是这样的

Provisioning profile "XXXXXX" doesn't include signing certificate "iPhone Distribution: XXXXXXXXXX (XXXXXXXXXX)".

问题是我可以在我的钥匙串中看到证书 "iPhone Distribution: XXXXXXXXXX (XXXXXXXXXX)"。但是有两个。一个有私钥,另一个没有,并且都有不同的到期日期。当我检查开发者帐户时,分发配置文件使用没有私钥的证书签名(开发者帐户上显示的证书的到期日期是没有私钥的证书的到期日期)

  1. 是什么导致了这个问题?
  2. 我该如何解决?
  3. 如果我无法从旧机器获取私钥怎么办(因为那台机器不再可用)

我尝试删除其中一个证书,并自动管理签名。两者均无效。

请帮忙。

  1. 问题是您绑定到分发证书的唯一有效配置文件,您没有私钥。没有私钥,它就不是有效的签名身份,因此 Xcode 不会使用它。

  2. 要解决此问题,您需要创建一个新的私钥/分发证书,然后使用新创建的证书创建一个新的分发配置文件。您可以找到说明,从创建证书签名请求开始,here.

  3. 见上2。没有密钥,您将无法使用现有证书。如果您需要从多个 Macs 构建,您需要设置共享机制以将私钥提供给任何其他 Macs,这些 Macs 将下载和使用 Apple 的证书/配置文件地点。我还会备份私钥,这样如果您的构建 Mac 出现问题,您将来就不会 运行 进入其中。此外,当证书过期时,将 .csr 文件从上面的答案 2 中保留下来会很有帮助。这意味着当您的分发证书到期时,您可以为新证书使用相同的私钥。