Xcode 7 错误:“缺少 iOS 分发签名标识……”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/32821189/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Xcode 7 error: "Missing iOS Distribution signing identity for ..."
提问by Awsed
I tried to upload my App to iTunes Connect resp. AppStore and got the following error:
我试图将我的应用程序上传到 iTunes Connect。AppStore 并收到以下错误:
Failed to locate or generate matching signing assets
Xcode attempted to locate or generate matching signing assets and failed to do so because of the following issues.
Missing iOS Distribution signing identity for ... Xcode can request one for you.
未能找到或生成匹配的签名资产
Xcode 尝试定位或生成匹配的签名资产,但由于以下问题而失败。
缺少 iOS 分发签名标识... Xcode 可以为您请求一个。
Before I setup a new development machine, exported the developer accounts via Xcode 7 from the old to the new machine.
在我设置新的开发机器之前,通过 Xcode 7 将开发人员帐户从旧机器导出到新机器。
What can I do to fix this?
我能做些什么来解决这个问题?
回答by Rajat Talwar
来自苹果——
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.
感谢您将此问题提请社区注意,并对您遇到的问题表示歉意。此问题源于在您的系统和登录钥匙串中都有过期的 WWDR 中间证书的副本。要解决此问题,您应该首先下载并安装新的WWDR 中间证书(通过双击该文件)。接下来,在 Keychain Access 应用程序中,选择 System keychain。确保在“查看”菜单中选择“显示过期证书”,然后删除过期版本的 Apple Worldwide Developer Relations Certificate Authority Intermediate 证书(2016 年 2 月 14 日过期)。您的证书现在应该在 Keychain Access 中显示为有效,并且可供 Xcode 提交到 App Store。
As noted in a comment below, the expired certificate also needs to be removed from the login
section, as well:
正如下面的评论中所指出的,过期的证书也需要从该login
部分中删除,以及:
To all that cannot get it working despite the instructions... There are two expired WWDR certs. One is in login keychain, and the other one is in the System. You have to delete both of them in order to make things working
尽管有说明,但仍无法使其正常工作的所有人...有两个过期的 WWDR 证书。一个在登录钥匙串中,另一个在系统中。您必须删除它们才能使事情正常进行
回答by Avaan
I also faced the same issue today. The following steps fixed my issue.
我今天也遇到了同样的问题。以下步骤解决了我的问题。
- Download https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
- Double-click to install to Keychain.
- Then in Keychain, Select View -> "Show Expired Certificates" in Keychain app.
- It will list all the expired certifcates.
- Delete "Apple Worldwide Developer Relations Certificate Authority certificates" from "login" tab
- And also delete it from "System" tab.
- 下载https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
- 双击安装到钥匙串。
- 然后在钥匙串中,在钥匙串应用程序中选择“查看”->“显示过期证书”。
- 它将列出所有过期的证书。
- 从“登录”选项卡中删除“Apple Worldwide Developer Relations 证书颁发机构证书”
- 并从“系统”选项卡中删除它。
Now you are ready go.
现在你准备好了。
回答by Ziad Elkurjie
I kept running into the issue and saw that all my certs were invalidated -- oh no!
我一直遇到这个问题,发现我的所有证书都失效了——哦,不!
It turns out I never deleted the expired cert. It was not showing up for me, until I selected from Keychain Access application:
事实证明我从未删除过期的证书。它没有出现,直到我从 Keychain Access 应用程序中选择:
View->Show Expired Certificates
查看->显示过期证书
then
然后
System->All Items
系统->所有项目
will finally display that gnarly expired cert. Delete that and retry from XCode will pick up the new valid certs.
最终将显示那个粗糙的过期证书。删除它并从 XCode 重试将获取新的有效证书。
Just make sure you search "All Items" in the Keychain Access app. The invalidated certs are a result of pointing to the expired certificate that has not been deleted yet.
只需确保在钥匙串访问应用程序中搜索“所有项目”。失效的证书是指向尚未删除的过期证书的结果。
回答by Teja Kumar Bethina
The below process will solve the problem,
下面的过程将解决问题,
1: Open KeyChain access, and Delete "Apple world wide Developer relations certification authority" (Which expires on 14th Feb 2016) from both "Login" and "System" sections. If you can't find it, use “Show Expired Certificates” in the 'View' menu.
1:打开 KeyChain 访问,并从“登录”和“系统”部分删除“Apple 全球开发者关系认证机构”(2016 年 2 月 14 日到期)。如果找不到,请使用“查看”菜单中的“显示过期证书”。
2: Now download https://developer.apple.com/certificationauthority/AppleWWDRCA.cerand double click the certificate to add it to Keychain access > certificates (which expires on 8th Feb 2023). Now the valid status of the certificates should turn green like below.
2:现在下载https://developer.apple.com/certificationauthority/AppleWWDRCA.cer并双击证书将其添加到钥匙串访问>证书(2023 年 2 月 8 日到期)。现在证书的有效状态应该变成绿色,如下所示。
Once check the status.
一旦检查状态。
回答by Nischal Hada
Apple has made following changes so download new certificate developer.apple.com
Apple 进行了以下更改,因此请下载新证书developer.apple.com
renewed certificateand place it as below screen shots .In the keychain as below screen shots click on system and then certificate. Delete the expired certificate . Then drag and drop the AppleWWDRCA.cer that you downloaded from above link
更新证书并将其放置在下面的屏幕截图中。在如下屏幕截图中的钥匙串中单击系统,然后单击证书。删除过期的证书。然后拖放从上面的链接下载的 AppleWWDRCA.cer
Apple Worldwide Developer Relations Intermediate Certificate Expiration
To help protect customers and developers, we require that all third party apps, passes for Apple Wallet, Safari Extensions, Safari Push Notifications, and App Store purchase receipts are signed by a trusted certificate authority. The Apple Worldwide Developer Relations Certificate Authority issues the certificates you use to sign your software for Apple devices, allowing our systems to confirm that your software is delivered to users as intended and has not been modified.
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.
Since different methods can be used for validating receipts and delivering remote notifications, we recommend that you test your services to ensure no implementation-specific issues exist. Your apps may experience receipt verification failure if the receipt checking code makes incorrect assumptions about the certificate. Make sure that your code adheres to the Receipt Validation Programming Guide and resolve all receipt validation issues before February 14, 2016.
Apple 全球开发者关系中级证书到期
为了帮助保护客户和开发者,我们要求所有第三方应用程序、Apple Wallet 通行证、Safari 扩展程序、Safari 推送通知和 App Store 购买收据均由受信任的证书颁发机构签名。Apple 全球开发者关系证书颁发机构颁发您用于为 Apple 设备签署软件的证书,使我们的系统能够确认您的软件已按预期交付给用户且未经修改。
Apple 全球开发者关系认证中级证书即将到期,我们已签发更新的证书,从 2016 年 2 月 14 日开始,在签署所有新的 Apple Wallet Pass、Safari 推送通知推送包和 Safari 扩展时必须包含该证书。
虽然大多数开发人员和用户不会受到证书更改的影响,但我们建议所有开发人员在他们的开发系统和服务器上下载并安装更新的证书作为最佳实践。所有应用程序仍可在适用于 iOS、Mac 和 Apple TV 的 App Store 中使用。
由于可以使用不同的方法来验证收据和发送远程通知,我们建议您测试您的服务以确保不存在特定于实现的问题。如果收据检查代码对证书做出错误假设,您的应用可能会遇到收据验证失败。确保您的代码符合收据验证编程指南,并在 2016 年 2 月 14 日之前解决所有收据验证问题。
回答by Ashish Thakkar
I imported the new Apple WWDR Certificate that expires in 2023, but I was still getting problems and my developer certificates were showing the invalid issuer error.
我导入了 2023 年到期的新 Apple WWDR 证书,但我仍然遇到问题,我的开发人员证书显示无效的颁发者错误。
In keychain access, go to View -> Show Expired Certificates, then in your login keychain highlight the expired WWDR Certificate and delete it. I also had the same expired certificate in my System keychain, so I deleted it from there too.(Important)
在钥匙串访问中,转到“查看”->“显示过期证书”,然后在您的登录钥匙串中突出显示已过期的 WWDR 证书并将其删除。我的系统钥匙串中也有相同的过期证书,所以我也从那里删除了它。(重要)
After deleting the expired cert from the login and System keychains, I was able to build for Distribution again.
从登录名和系统钥匙串中删除过期的证书后,我能够再次构建分发。
回答by Awsed
After searching for a while I found out that it is not sufficient to export the developer accounts from Xcode and import these on the new machine, again via Xcode.
搜索了一段时间后,我发现从 Xcode 导出开发人员帐户并在新机器上再次通过 Xcode 导入这些帐户是不够的。
Additionally I needed to copy the Certficate named "Apple World Wide Developer Relations Certificate Authority" from the keychain of the former development machine to the keychain of the new one.
此外,我需要将名为“ Apple World Wide Developer Relations Certificate Authority”的证书从前开发机器的钥匙串复制到新机器的钥匙串。
This solved the problem for me.
这为我解决了这个问题。
回答by Berk
I removed old AppleWWDRCA, downloaded and installed AppleWWDRCA, but problem remained. I also, checked my distribution and development certificates from Keychain Access, and see below error;
我删除了旧的 AppleWWDRCA,下载并安装了AppleWWDRCA,但问题仍然存在。我还从 Keychain Access 中检查了我的分发和开发证书,并查看以下错误;
"This certificate has an invalid issuer."
Then,
然后,
- I revoked both development and distribution certificates on member center.
- Re-created CSR file and add development and distribution certificates from zero, downloaded them, and installed.
- 我撤销了会员中心的开发和分销证书。
- 重新创建 CSR 文件并从零添加开发和分发证书,下载并安装。
This fixed certificate problem.
这个固定的证书问题。
Since old certificates revoked, existing provisioning profiles become invalid. To fix this;
由于旧证书被撤销,现有的配置文件变得无效。解决这个问题;
- On member center, opened provisioning profiles.
- Opened profile detail by clicking "Edit", checked certificate from the list, and clicked "Generate" button.
- Downloaded and installed both development and distribution profiles.
- 在会员中心,打开配置文件。
- 通过单击“编辑”打开配置文件详细信息,从列表中选中证书,然后单击“生成”按钮。
- 下载并安装了开发和分发配置文件。
I hope this helps.
我希望这有帮助。
回答by Guy Lowe
My answer was different and came along with the message:
我的回答是不同的,并伴随着消息:
resource fork, Finder information, or similar detritus not allowed
The solution was to do with generated graphics:
解决方案与生成的图形有关:
回答by user542319
Don't forget to also install the iOS cert for your Apple Developer Account.
不要忘记为您的Apple Developer Account安装 iOS 证书。