我有以下问题,我无法在任何地方找到解决方案。基本上,我们有一个公司开发人员帐户(不是企业),因此为了提交我们的应用程序,我要求我们的团队负责人向我发送分发证书,并创建并向我发送分发配置文件。
使用开发人员配置文件,一切正常,但是当我安装证书和配置文件时,我没有在 Xcode 上看到分发配置文件,而且我在钥匙串中的 dist 证书下也没有私钥。
有谁知道如何解决这个问题?我在不同的地方读到我需要吊销证书并创建一个新证书,但我真的不能这样做,因为我们公司有很多应用程序,我不能为每个人吊销它。
啊这是一个常见的问题,解决方案很简单:
曾经创建开发人员凭据的人最初需要转到他们计算机上的钥匙串,然后右键单击私有和公共密钥,然后将密钥导出到文件中。然后,您只需在计算机上下载该文件并打开它,它就会添加到您的钥匙串中。
您需要同时拥有配置文件的私钥(.pem 文件)和证书。
只要您仍然可以访问用于生成原始分发证书的 mac,它就非常简单。
只需使用该 Mac 的钥匙串访问应用程序来导出证书和私钥。使用 shift 或 command 选择两者并右键单击以导出到 .p12 文件。
附上截图以使其非常清晰。
在您的 Mac 上,导入该 .p12 文件,一切顺利(只需确保您拥有有效的配置文件)。
为了补充其他人的答案,如果您不再有权访问该私钥,那么恢复并运行相当简单:
- 在供应门户中吊销您的活动证书
- 创建新的开发人员证书(钥匙串访问/.../csr 的请求...等)
- 下载并安装新证书
- 为现有应用程序 ID 创建新的配置文件(在配置门户上)
- 下载并安装新的配置文件,并在构建中设置适当的代码签名身份
对于害怕重新创建 AppStore 分发证书的人,Apple文档说:
重要提示:重新创建您的开发或分发证书不会影响您提交到 App Store 的应用程序,也不会影响您更新它们的能力。
但它会影响Apple Developer Enterprise生态系统的应用程序。
就我而言,我丢失了钥匙串中的所有私钥,新的私钥已正确导入,但也没有显示私钥。唯一有帮助的是生成新的 CertificateSigningRequest
我浪费了几个小时来解决这个问题,但它只是通过重新启动 MAC 来解决......
在您更改了不是创建分发证书的原始 Mac 后,您将丢失私钥。只需删除原始证书并重新创建一个新的,这对我有用~
在 Xcode 未能创建新的分发证书后,我遇到了这种情况(“缺少私钥。”) - 发生了未知错误。
然后,我努力获取私钥或生成新证书。从 Xcode 的证书管理器中,我收到了一些奇怪的错误,例如“您输入的密码错误”。但它甚至没有要求我输入任何密码。
对我有帮助的是:
之后,Xcode 能够创建新的分发证书,并且没有丢失任何私钥。
经验教训:重启你的 Mac 和你的 Windows 一样多;)
在 Menu > Visual Studio (mac) > Preferences > Publishing > Apple Developer Accounts > [Select your apple id] > View Details > Create Certificate
要删除未使用/无效的证书,请访问网站:https ://developer.apple.com/account/resources/certificates/list
在那里删除任何不需要的证书
接下来是创建 App ID(标识符),访问网站:
https ://developer.apple.com/account/resources/identifiers/list
接下来,去网站创建配置文件:
https ://developer.apple.com/account/resources/profiles/add
使用证书与您的应用程序 ID 绑定。
接下来是下载配置文件:
在您的 mac > 在菜单 > Visual Studio (mac) > Preferences > Publishing > Apple Developer Accounts > [选择您的 Apple id] > 查看详细信息 > 下载所有配置文件
我是密钥的创建者,但密钥已附加到过期的证书上。
为了解决这个问题,我去了-> Xcode/Preferences/Accounts/"Account you used to archive"/Manage Certificates..
然后单击左下角带有“+”号的下拉菜单,然后选择您需要更新的证书类型(我的是 Apple Distribution)。
这更新了我的新证书,并附上了它的密钥。
我在苹果的开发者网站上访问了该证书,下载后我打开了它。同样,在打开时,我有一个小窗口询问我是否要将证书添加到钥匙串。只需点击“添加”,“丢失私钥”错误就消失了。
检查您是否使用登录来添加证书,如果您在左上角的系统中签入,那么我们将无法看到它。
因此,将 .cer 拖放到登录中,然后检查您是否能够获取私钥。
只是为了对此有所了解。
从钥匙串中删除我的 p12 证书后。我从 Apple 开发者门户重新下载了自己的证书。
我只能下载证书。但是要签名,您也需要私钥。所以你要么:
从 Keychain 导出私钥和证书以获取它。
上传证书签名请求并生成新证书
该证书本身对签名没有任何价值。我的猜测是,私钥是在您“向证书颁发机构请求证书”时由钥匙串创建的,但在您添加其绑定证书之前不会显示给您。
如果您正在创建自己的分发证书,而不是使用其他人的证书,那么这可能会有所帮助。
今天在这方面花了很多时间,从无法创建 SigningRequest 到生成分发证书以及没有将其附加到我在 KeyChain Access 中的私钥的问题。这些步骤帮助我解决了这个问题。
如果您仍然遇到问题,请撤销您当前的证书并重新开始。
Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority 实际上会根据上下文了解您在启动它时当前选择的内容。只是为了确保您不会因一些随机选择而意外扭曲您的请求,请转到您的登录项目并选择 Apple Worldwide Developer 项目。然后启动上述请求并创建 CertificateSigningRequest.certSigningRequest 文件。
转到 Apple Dev 门户,添加新的分发证书,上传您的 CertificateSigningRequest.certSigningRequest 文件并下载新创建的分发证书。
要将分发证书导入您的钥匙串,而不是双击它,我建议打开您的钥匙串,转到“登录/证书”区域并将证书拖放到此处。
我有一个问题,我的证书会自动安装到系统区域,而不是我的私钥所在的登录区域,这导致我的密钥没有链接到新证书。
我可以通过更新 macOS 和 XCode 来解决这个问题。