证书已过期或已被撤销

不久前,我开始编写一个新的 iOS 应用程序。经过长时间的休息之后,我又重新开始工作,并且几乎已经完成了。

我在模拟器上测试了它,但是当我试图在我的 iPhone 6上安装它时(我过去已经安装过了) ,我得到一个错误,告诉我我的应用程序无法安装,因为用来签署这个应用程序的证书已经过期或者被撤销了。

我尝试了很多方法:

  1. 我删除了 Xcode、 keychain 和苹果开发者的所有证书和配置文件,让 Xcode 为我创建了新的证书和配置文件
  2. 我删除了 Xcode,并从头开始完成了整个过程

但这并没有解决我的问题。

知道是什么问题吗?

128484 次浏览

编辑: 此答案不适用于 Xcode 10或更高版本,请参阅 Turkenh 的回答


我经历过这个问题,并能够找到答案。

这个问题的答案可以在 给你中找到。

你必须这样做:

  1. 转到首选项-> 帐户
  2. 记在你的帐上
  3. 点击“查看详情”
  4. 点击左下角的“全部下载”。

这些步骤为我解决了问题。

我有一个稍微不同的解决方案,它可能来自于更新,或者我的特殊用例。

使用 Xcode 7.3.1

我使用一个文件共享系统(Dropbox)在两台不同的机器上进行开发。使用 Download All解决方案并不能解决我的问题。

按照上面的链接,我采纳了

删除 ~/Library/MobileDevice/Provisoning Profiles 中的所有配置文件

(这是一个极端的措施,但 Xcode 现在应该可以下载您需要的内容)

提示 Xcode 进行自我更新。

在不同机器上进行开发切换时,我仍然有一个问题,它会出现以下警告/故障:

此应用程序的应用程序标识符权限与已安装的应用程序的权限不匹配。要允许升级,这些值必须匹配。

解决这个问题的方法是从设备上删除开发项,然后重新安装。

编辑: 此答案不适用于 Xcode 10或更高版本,请参阅 Turkenh 的回答


解决方案

首先,通过持有 Shift (something) + Command (something) + K或 选择 产品 > < strong > Clean

然后:

  1. 转到 Xcode 菜单 > < strong > Preferences

  2. 选择 帐目 > 团队 > < strong > View Details

  3. 从“供应配置文件”列表中选择任何“供应配置文件”

  4. 右键单击 > 选择 在 Finder 中显示。然后您将看到所有供应配置文件列表

  5. 从文件夹中选择所有配置列表,并将它们移动到回收站

  6. 单击“供应配置文件”列表下面的 全部下载下载所有供应配置文件。

现在,再跑一次,它应该会起作用!

重命名目录,不包含 Decimal point & 0(0)。

像这样,我解决它。

有时候在 Xcode“捆绑标识符”会因为你做的一些东西而改变。确保你在苹果开发者账户中定义的捆绑标识符与在 Xcode 定义的完全一样。

一个简单的“清洁”(Shift (something) + Command (something) + K)解决了我

打开钥匙链 - 通过选择它检查所有证书。 - 检查状态是否有效。 - 如果证书无效,则右键单击该证书并删除该证书

Xcode 8的一个新问题是,关闭目标 General 选项卡上新的“自动管理签名”复选框,然后再打开它。

这将启动一个正确设置 Xcode 8的登录向导。

在 Xcode 8中,

  1. 转到首选项-> 帐户
  2. 记在你的帐上
  3. 点击“查看详情”
  4. 删除您需要的配置文件
  5. 点击左下角的“全部下载”。

当删除和重新下载个人资料,或“清理”帮助我这样做:

首选项 > 帐户 > 苹果 ID > 选择你的空调 > 选择你的队伍 > 查看详细信息... > 重置您的签名身份(在我的例子中是 iOS 开发)。

这招对我很管用。

有时候,在 Xcode 8中,你可能会发现自己处于一个撤销-重新生成的循环中,你让 Xcode 8“修复”证书和供应,然后 Xcode 发现新的/重新生成的证书也是无效的,然后你回过头来撤销,这种情况不断发生。

在这种情况下,请检查您的 MacOS 时间!如果将其设置为其他时间,而不是实际的当前时间,则新证书可能总是“尚未”有效。

在下载了最新的供应配置文件后,我终于关闭并重启了我的 MacBook。

1. 更改 Mac 计时设置为自动(打开日期和时间偏好设置,检查日期和时间自动设置)。

然后进入 X 代码,清理并运行代码。

3.如果失败,注销您的苹果配置文件和删除所有自动创建的供应配置文件在 XCode-首选项和移动所有的供应配置文件垃圾和下载作为一个新的文件。然后再次登录并运行代码。

我只是取消选中“自动管理签名和选择团队再次检查它,它为我工作 enter image description here

发现另一个案件,导致血腥的 Certificate has either expired or has been revoked错误的 Xcode 9。如果您试图使用 有效证书签名,但是在您的钥匙链上的同一个团队中还有另一个 被吊销的证书,则 Xcode 将抛出此错误。若要检查是否有已撤销的证书,请参见 Xcode -> Preferences -> Accounts -> Your Apple ID -> Your Team -> Manage Certificates。使用 Keychain Access删除已撤销的证书可以解决这个问题。看起来像是 Xcode 的另一个密码错误。

这不是我面临的一个大问题。只是 干净的项目和 重启你的 xcode! ! 希望对你有用! 对我有用。 :)

或者 首先,通过按住 Shift (something) + Command (something) + K 或选择 Product > Clean 来清理项目

然后

转到 XCode 菜单 > 参数设置

选择 帐户 > 工作队 > 查阅详情

从“供应配置文件”列表中选择任何“供应配置文件”

然后您将看到所有供应配置文件的列表

从文件夹中选择所有临时列表并将其移到垃圾桶

单击“下载所有配置文件”列表,下载所有配置文件。

现在,再跑一次,应该可以了!

使用 Xcode Version 10.1,我通过以下步骤解决了这个问题:

  1. 转到 XcodePreferences并选择 Accounts选项卡
  2. 在帐户部分单击窗口角落左下角的齿轮,然后单击 Export Apple ID and Code Signing Assets...导出一个文件,例如 Test.developerprofile
  3. 删除您正在使用的配置文件
  4. 再次点击齿轮选择 Import Apple ID and Code Signing Assets...,并选择先前导出的文件 Test.developerprofile
  5. 现在执行 Clean(Shift (something) + Command (something) + K)和 Build(命令(something) + B)
  6. 再跑一次

对于那些在 帐户 > 工作队 > 查阅详情上找不到“查看详细信息”按钮的人,以下是我在 Xcode 10上解决这个问题的方法:

  1. 删除 ~/Library/MobileDevice/Provisoning Profiles/上的所有配置文件
  2. 通过保持 Shift (something) + Command (something) + K或选择 产品 > 清洁(它可能被标记为 “清除生成文件夹”)来清理项目
  3. 重启 Xcode

再试一次。

在更改我的电子邮件帐户后,我遇到了这个问题。

在尝试了这么多可能的解决方案之后,唯一有效的方法就是从我的 苹果开发者账号中删除当天创建的证书。(这不是我帐户中唯一的证书)似乎一个新的证书是自动创建的,它与主证书有冲突。

我有这个问题,它看起来像一个 bug 在 代码是10新的构建系统。

  1. 转到 < strong > File > Project Settings 将 Build 系统更改为使用 Legacy build system

  2. 通过按住 Option (something) + Shift (something) + Command (something) + K 或按住 Option (something)并选择 产品 > 清洁生成文件夹来深度清理项目

  3. 在设备上运行

使用 Xcode 10.3

遵循以下步骤:

  1. 转到 https://developer.apple.com
  2. 跟着 Account > Certificates, Identifiers & Profiles > Devices
  3. 从列表中找到你的 iPhone,点击它,它会打开详细信息页面
  4. 禁用它,然后启用它
  5. Xcode选择你的 iPhone 并运行它

不要忘记去 Settings > General > Device Management信任开发者帐户

Xcode 11.1要求直接从 Xcode 生成证书

所以你会在 https://developer.apple.com上看到这样的东西

enter image description here

更新 Xcode 13.2.1(03.2022) : 此方法仍然有效。

Xcode 11.3.1中,所有当前答案的接口都发生了变化。

  1. 转到菜单“ Xcode”> Preferences > Account。
  2. 为项目选择左侧的正确的 Apple ID。
  3. 如果配置文件仍处于活动状态,请单击“管理证书”
  4. 如果有任何被撤销的证书,右键单击被撤销的证书和“删除证书”在所附的截图中,红色方框中的证书应该被删除。

Revoked Certificate Screenshot

删除最新的“创建日期”证书应该刷新证书,但建议删除所有被撤销的证书。

删除被撤销的证书后,您应该能够重新构建应用程序。

如果您有一个在设备上运行的主机测试目标,请确保它使用与应用程序目标相同的代码签名标识。否则,当您在测试和调试应用程序之间切换时,您将不得不进行清理。

我在 Xcode 11.4.1中遇到过这个问题,当时我们关闭了主机测试目标中的代码签名,作为构建时增强。一旦我为主机测试重新启用代码签名,在运行主机测试目标和应用程序之间切换时就不会再遇到这个问题了!

以防它帮助任何人: Xcode 11.x 我还撤销了 AppDeveloper 帐户中的一个证书(删除)。 然后我认为我已经删除了证书也在钥匙链访问,但不断得到错误消息,当尝试上传应用程序更新到 AppStore。

然后我发现在密钥链访问中有两个不同的地方,其中一个地方保存着证书(有趣的是,一旦在密钥链中选择了登录) ,另一个地方保存着私钥(当然是在密钥链中的项目证书下)。我确保两个都删除了,现在一切正常。

这是我的工作:

  1. 转到 Xcode-> Preferences并选择 Accounts选项卡。
  2. 选择您的帐户 & 在右下角点击 Manage Certificates
  3. 你会看到 Signing certificate for "User name"手动弹出。
  4. 从底部按下面的 Apple Development,然后按下 Done按钮。

enter image description here

由于与 AppleWorldwide 开发者关系认证机构证书冲突,您还可能得到此错误。

对我有效的办法是删除系统中的所有 Apple Worldwide 开发者证书(不是显示公司名称的证书) ,以及“ KeyChain Access”应用程序中的登录密钥链。用 Xcode (9.2)重新启动和重新构建,问题就解决了。

转到 https://www.apple.com/certificateauthority,下载所有 Worldwide Developer Relations-G # 证书,并将它们添加到您的 Mac Keychain。重新启动 Xcode 并重试。

我有个问题,我解决了。

  1. 转到 XCode 菜单 > 帐户
  2. 选择帐户 > 团队 > 查看详细信息
  3. 选择 Manage Certificates...,您将看到签名证书菜单将弹出。
  4. 单击 Apple Development并按 Done按钮。

更新 Xcode 13.2.1,

对我来说,这个错误是因为我使用了一个免费的苹果开发者帐户。因此,它将在一个特定的时间后撤销不建立该应用程序与证书。但是没有识别出 Xcode 来重新构建证书-> 这就是发生错误的原因。

只需要像 Turkenh 的回答那样做,但是不需要重新启动 Xcode。清除证书后将自动重新构建。

1. 转到 Xcode 菜单 > 首选项 2. 帐户 检查您是否使用 Apple Developer 帐户登录