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