吊销分发证书后无法访问钥匙串

Posted

技术标签:

【中文标题】吊销分发证书后无法访问钥匙串【英文标题】:Can't able to Access Keychain After revoke distribution certificate 【发布时间】:2017-11-27 15:23:06 【问题描述】:

我正在从事由不同开发人员提交的 Appstore 中已存在的项目。现在我正在尝试提交具有不同版本和内部版本号的应用程序的更新版本。我无法访问以前存储的钥匙串值。

这是我做的步骤

    撤销了另一个人创建的旧分发证书,并在我的机器上创建了一个新的。 以前的开发人员使用的重新生成的配置文件 代码签名并提交到 App Store 从 App Store 下载旧版本 从试飞中安装更新的构建 现在我无法访问已存储的钥匙串值。

现在我可以做些什么来检索旧的钥匙串值?我还检查了钥匙串组访问的团队 ID,它与旧的相同。有什么方法可以检索旧的钥匙串值。

【问题讨论】:

与您的团队标识符相关联的钥匙串组。因此,基本上,应用程序更新后对钥匙串的访问取决于您使用的分发证书,而不是配置文件 @ShobhakarTiwari 撤销旧的分发证书会导致问题。现在我使用相同的团队 ID 你应该使用相同的旧证书,否则数据将丢失 @ShobhakarTiwari 我需要使用哪个旧证书才能使用配置文件或分发证书? 用于创建配置的分发证书 【参考方案1】:

这里有一个简短的答案,可以帮助您解决问题:

与您的团队标识符相关联的钥匙串组。所以,基本上, 应用更新后对钥匙串的访问取决于分发 您使用的证书,而不是配置文件中的证书

因此,如果您说您撤消了所有旧证书和具有新证书(您创建的证书)的证书,则此版本将丢失对钥匙串组的访问权限。

【讨论】:

您说钥匙串组与团队标识符绑定我使用相同的团队标识符【参考方案2】:

我终于从苹果指南那里得到了解决方案

注意:在 ios 中,钥匙串权限取决于使用的配置文件 签署您的申请。确保始终使用相同的 跨不同版本的应用程序配置配置文件。

https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html

【讨论】:

现在从文档中删除了引用的文本。苹果删除了这句话,因为它实际上不是真的!您可以使用不同的配置文件,只要它们包含相同的重要信息:团队/开发人员 ID、捆绑包 ID,最重要的是 - keychain access group。查看my answer here 以获得更深入的描述。

以上是关于吊销分发证书后无法访问钥匙串的主要内容,如果未能解决你的问题,请参考以下文章

苹果吊销证书

苹果企业账号发布APP详解——通过自己网站分发应用

分发证书错误:“此证书尚未生效。” [关闭]

更新 iOS 分发证书和推送通知

钥匙串警告无法修改“系统根”钥匙串[关闭]

即使在从钥匙串访问和 App Store Connect 中删除后,重新启动 Xcode 时,已删除的 iOS 证书仍会继续显示在钥匙串中