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

此证书的颁发者无效


当前回答

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

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

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

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

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

其他回答

如果您的所有证书都出现“此证书的颁发者无效”错误,那么请执行以下步骤。

步骤:

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.

我想我想明白了。我导入了新的WWDR证书,该证书将在2023年到期,但我仍然在构建过程中遇到问题,我的开发人员证书仍然显示无效的发行者错误。

在keychain访问方式下,执行“查看->显示过期证书”。然后在您的登录钥匙串突出显示过期的WWDR证书,并删除它。 我的系统钥匙串中也有同样过期的证书,所以我也把它删除了(这很重要)。

在从登录和系统密钥链中删除过期的证书后,我能够再次为分发版构建。

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

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

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

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

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

如果您是从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
)