iOS发布证书缺失私钥

3
我找到了很多关于这个问题的信息,但没有一个能够完全帮助我解决我的情况。几周前我丢失了硬盘。现在我已经购买并配置了新系统,但现在我需要在应用商店中发布一个新版本的应用程序。我重新下载了3个证书,包括分发证书和分发配置文件,但XCode报告说我的分发配置文件无效(具体来说是“未找到有效的签名标识”)。
经过大量搜索和阅读,似乎问题在于缺少私钥,但我不知道该如何纠正。我确实有旧机器的最近备份(SuperDuper),但打开旧的Keychain Access应用程序只显示我当前机器上的内容(或者看起来是这样的——我没有看到任何不同的东西)。那将是我检索旧密钥的唯一窗口。同样,打开旧版本的XCode并查看其组织者也是如此。
如果我尝试撤销现有的分发证书,我会收到警告,所有使用该证书签署的现有应用程序都将停止运行。我绝对不想要这种情况。
我在这里有任何选择吗?苹果的证书和配置文件系统让我感到困惑,因此我希望有某种方法可以重新建立与我的分发密钥的联系或创建新的证书,而不会完全破坏已经存在的一切。

你尝试过下载中间证书并按照流程获取证书签名请求吗?如果你没有原件,这将是从苹果获得有效证书的最佳方式。 - TrevorL
我已经下载并安装了“WWDR中间证书”。我还有原始签名请求(如果这对我有帮助的话)。我似乎缺少的是私钥。 - Rob Wilkerson
我相信回过头来看,这一点显而易见,但您应该备份所有带有私钥的证书。我用一个长密码将它们全部导出,并将它们放在DropBox或具有自动备份功能的驱动器中。为了解决问题,我知道Xcode会保留副本,并在我尝试重新编译/存档/分发存档时将它们重新安装到我的钥匙串中。我还曾经让iPhone配置实用程序使旧证书出现在我的钥匙串中,原因不明。我很想告诉您这些应用程序缓存它们的位置,但我不知道。 - DBD
@DBD 是的,这是我的第一个iOS应用程序,使用Titanium构建,所以我完全不熟悉App Store。我保存了CSR,认为可能会再次需要它,但从未想过保留私钥。回想起来很明显,确实如此。 :-/ - Rob Wilkerson
1个回答

2

打开旧的钥匙串访问应用程序无法起作用,因为它会加载运行该应用程序的计算机上的所有数据。您需要做的是获取旧的 .keychain 文件,并使用钥匙串访问应用程序打开它。

在您的备份中找到 /Users/USER_NAME/Library/Keychains/login.keychain 并复制一份。接下来,您需要将其重命名为其他名称,如 oldlogin.keychain ,以防止与您的新登录钥匙串发生冲突。然后只需双击 oldlogin.keychain 以在钥匙串访问应用程序中打开它。它可能会要求您输入密码以访问密钥串,这应该是您丢失硬盘之前的登录密码。一旦解锁,您可以从 oldlogin 中拖动任何您想要的内容到 login,包括私钥。


先生,您刚刚救了我的一大步。我相信这使我到达了我需要到达的地方。谢谢。 - Rob Wilkerson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接