我已经创建了证书来启用我的应用程序中的推送服务,但每次我尝试在我的钥匙链中添加证书时,添加证书后它会显示以下错误:

此证书的颁发者无效


当前回答

当地日期尽量早于2月14日。对我有用!不能完全解决问题,只能暂时解决问题。

其他回答

如Apple全球开发者关系中间证书到期所述:


之前的Apple Worldwide Developer Relations Certification中级证书已于2016年2月14日到期,现在必须在签署Apple Wallet pass、Safari推送通知推送包、Safari扩展以及向Apple TV的App Store、Mac App Store和App Store提交文件时使用更新的证书。

所有开发人员都应该下载并在其开发系统和服务器上安装更新后的证书。所有应用程序将继续在iOS、Mac和Apple TV的应用程序商店中使用。


新的有效证书将如下所示:

它将显示(此证书有效)绿色标记。

所以,去你的钥匙链访问。只需删除旧的证书,并按照苹果在文档中描述的那样替换为新的证书(更新后的证书)。主要问题是苹果推送通知服务和苹果文档中描述的扩展。

您还可以在https://www.apple.com/certificateauthority/中查看证书列表

证书撤销列表:

现在,更新后的证书将在2023-02-08到期。


如果您不能看到旧证书,然后转到系统密钥链,从编辑菜单中选择选项显示过期证书。

现在您可以看到以下您必须删除的证书:

如果您是从Fastlane来到这里的,那么这个片段可能会修复您的CI部署。在签名之前执行它。

 apple_intermediate_certificate_path = "/tmp/AppleWWDRCAG3.cer"
`curl https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer --output #{apple_intermediate_certificate_path}`

other_action.import_certificate(
  certificate_path: apple_intermediate_certificate_path,
  keychain_name: YOUR_KEYCHAIN_NAME,
  keychain_password: YOUR_KEYCHAIN_PASSWORD
)

如果你从fastlane建议中得到这个错误

在尝试以上所有修复后 Security find-identity -v -p codesigning返回找到的有效身份 错误只发生在构建服务器上 如果你“手动”登录,一切正常

那么这可能是由于分发证书在错误的地方:

“登录”钥匙串在登录时工作 “系统”密钥链与构建服务器作为守护进程运行

用屏幕截图检查这个答案,你可以在登录钥匙串中右键单击分发证书,并将其粘贴到系统中。

请遵循以下步骤:

从这里下载和安装。双击并安装它。 在钥匙串应用程序中选择“查看”->“显示过期证书”。 删除Apple全球开发者关系证书授权 证书从“登录”标签和“系统”标签在钥匙串应用程序。

如果您在登录或系统选项卡中没有找到您的WWDR证书,则选择左侧的类别“所有项目”。您很可能会在这里看到一个过期的WWDR证书,您可以删除它。过期的证书总是用红色星号显示。

下面是我们解决这个问题的方法。

第一步:打开钥匙链访问,从“登录”和“系统”部分删除“Apple world wide Developer relations certification authority”(将于2016年2月14日到期)。 如果找不到,请使用“视图”菜单中的“显示过期证书”。

步骤2:下载并将其添加到Keychain访问->证书 (有效期2023年2月8日)。

步骤3:现在一切应该都恢复正常了。

参考:苹果全球开发者关系中级证书到期