我已经创建了证书来启用我的应用程序中的推送服务,但每次我尝试在我的钥匙链中添加证书时,添加证书后它会显示以下错误:
此证书的颁发者无效
我已经创建了证书来启用我的应用程序中的推送服务,但每次我尝试在我的钥匙链中添加证书时,添加证书后它会显示以下错误:
此证书的颁发者无效
在苹果的开发者门户网站中,添加一个新证书,当被问到“你需要哪种类型的证书?”时,选择“WorldWide Developer relations certificate”。生成新的证书,下载并安装。当您这样做时,您将不再看到您所描述的消息。
编辑: 证书下载路径如下: https://www.apple.com/certificateauthority/ 您可以选择以下两种证书之一: "WWDR证书(将于02/07/23到期)" 或 "WWDR证书(2016年2月14日到期)"
我想我想明白了。我导入了新的WWDR证书,该证书将在2023年到期,但我仍然在构建过程中遇到问题,我的开发人员证书仍然显示无效的发行者错误。
在keychain访问方式下,执行“查看->显示过期证书”。然后在您的登录钥匙串突出显示过期的WWDR证书,并删除它。 我的系统钥匙串中也有同样过期的证书,所以我也把它删除了(这很重要)。
在从登录和系统密钥链中删除过期的证书后,我能够再次为分发版构建。
下面是我们解决这个问题的方法。
第一步:打开钥匙链访问,从“登录”和“系统”部分删除“Apple world wide Developer relations certification authority”(将于2016年2月14日到期)。 如果找不到,请使用“视图”菜单中的“显示过期证书”。
步骤2:下载并将其添加到Keychain访问->证书 (有效期2023年2月8日)。
步骤3:现在一切应该都恢复正常了。
参考:苹果全球开发者关系中级证书到期
下载https://developer.apple.com/certificationauthority/AppleWWDRCA.cer 双击安装到Keychain。 在钥匙串应用程序中选择“查看”->“显示过期证书”。 确认选择“证书”类别。 从“登录”标签和“系统”标签中删除过期的Apple全球开发者关系证书颁发机构证书。
以下是苹果的答案。
Thanks for bringing this to the attention of the community and apologies for the issues you’ve been having. This issue stems from having a copy of the expired WWDR Intermediate certificate in both your System and Login keychains. To resolve the issue, you should first download and install the new WWDR intermediate certificate (by double-clicking on the file). Next, in the Keychain Access application, select the System keychain. Make sure to select “Show Expired Certificates” in the View menu and then delete the expired version of the Apple Worldwide Developer Relations Certificate Authority Intermediate certificate (expired on February 14, 2016). Your certificates should now appear as valid in Keychain Access and be available to Xcode for submissions to the App Store.
https://forums.developer.apple.com/thread/37208
请遵循以下步骤:
从这里下载和安装。双击并安装它。 在钥匙串应用程序中选择“查看”->“显示过期证书”。 删除Apple全球开发者关系证书授权 证书从“登录”标签和“系统”标签在钥匙串应用程序。
如果您在登录或系统选项卡中没有找到您的WWDR证书,则选择左侧的类别“所有项目”。您很可能会在这里看到一个过期的WWDR证书,您可以删除它。过期的证书总是用红色星号显示。
如果您的所有证书都出现“此证书的颁发者无效”错误,那么请执行以下步骤。
步骤:
Open Keychain and Click on Login -> All Items from the left panel. Now, Click on View -> Show Expired Certificates from the top navigation menu. Now search for "Apple Worldwide Developer Relations Certification Authority" and delete expired certificates. After deleting expired certificates, visit the following URL and download the new certificate, https://developer.apple.com/certificationauthority/AppleWWDRCA.cer. Double click on the newly downloaded certificate, and install it in your keychain. Double check: List expired certificates by following step number 3. Now you have a valid "Apple Worldwide Developer Relations Certification Authority" having expiry date 2023-02-07.
参考:
苹果全球开发者关系中级证书到期
这实际上不是一个发展问题。这是由于苹果全球开发者关系证书颁发机构颁发的苹果全球开发者关系中级证书到期导致的。WWDRCA颁发证书为您的Apple设备软件签名,允许我们的系统确认您的软件已按预期交付给用户,并且没有进行修改。
要解决此问题,您必须遵循以下步骤:
开放钥匙串访问 执行“查看”->显示过期证书
进入钥匙链中的系统 在这里你会发现“Apple Worldwide Developer Relations Certificate Authority”被标记为过期。所以删掉它。同时在登录标签下检查并删除过期的WWDRCA。 从这里下载新的WWDR中级证书(更新的Apple全球开发者关系认证中级证书将于2023年2月7日到期)。 双击它来安装它。
如果您的iOS应用程序、Mac应用程序、Safari扩展程序、Apple Wallet和Safari推送通知仍然存在任何问题,请点击此过期链接。
The Apple Worldwide Developer Relations Certification Intermediate Certificate expires soon and we've issued a renewed certificate that must be included when signing all new Apple Wallet Passes, push packages for Safari Push Notifications, and Safari Extensions starting February 14, 2016. While most developers and users will not be affected by the certificate change, we recommend that all developers download and install the renewed certificate on their development systems and servers as a best practice. All apps will remain available on the App Store for iOS, Mac, and Apple TV.
如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到期。
如果您不能看到旧证书,然后转到系统密钥链,从编辑菜单中选择选项显示过期证书。
现在您可以看到以下您必须删除的证书:
我所有的证书都安装好了,过期日期也没有问题。 我删除并重新安装了我所有的证书,仍然没有运气
最后,我右键点击证书,并选择“Get Info”。在“信任”部分,我选择了“始终信任”,这就解决了我的问题。
2021年:
下载AppleWWDRCAG3。Cer(有效期至2030年) https://developer.apple.com/support/expiration/ 安装它
如果您是从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返回找到的有效身份 错误只发生在构建服务器上 如果你“手动”登录,一切正常
那么这可能是由于分发证书在错误的地方:
“登录”钥匙串在登录时工作 “系统”密钥链与构建服务器作为守护进程运行
用屏幕截图检查这个答案,你可以在登录钥匙串中右键单击分发证书,并将其粘贴到系统中。