这事让我非常担心。我刚刚下载了iPhone 3.0 SDK,但现在我无法让我的配置文件工作。以下是我的尝试:

删除所有配置配置文件 删除登录keychain 创建新的“登录”钥匙链,使它 默认的 创建一个新的证书签名请求 创建新的开发人员和分销渠道 证书在苹果开发者中心 下载并安装它们 下载并安装WWDR证书 创建一个新的配置文件和 双击它来安装

所有的证书报告都是有效的,但是Xcode仍然不能识别它们。接下来我该试试什么?

编辑:

我完全重新安装了Mac OS X,从一个新的安装安装了3.0 SDK,仍然有同样的问题。


当前回答

对于两个不同的配置概要文件(开发和分发),有两个不同的证书。您必须在keychain中安装两个证书。在iPhone开发者计划入口:

证书->开发->下载 证书->分发->下载

双击这两个证书。之后,两个证书都必须出现在Keychain中。

其他回答

For Xcode 13 (maybe earlier?) - The key to this is to use the "Build Settings" tab, not the "Signing and Capabilities" tab in your Target Settings. Once you are in "Build Settings", search for the "Signing" section (you can type "Signing" in the search box). There you will see a sub-section called Code Signing Identity. In that section you can click on each line and directly choose any certificate you have in your keychain. You need to do that for all of the relevant configurations (the ones that you want to upload to TestFlight/AppStore). When you go back to the "Signing and Capabilities" tab, you should see the results of what you did and the error should have gone away.

我从下面的答案中得到了灵感:https://stackoverflow.com/a/37043501/826946

但我认为明确地列出这一点可能会有所帮助。

昨天我们的CI服务器也遇到了类似的问题。无法对应用程序扩展名进行错误签名

Code Sign error: No matching provisioning profiles found: No provisioning profiles with a valid signing identity (i.e. certificate and private key pair) matching the bundle identifier XXX were found.

注意:我自己从开发者门户网站创建了配置文件(不是由Xcode管理的)。

错误在于,我已经使用分发证书创建了供应配置文件,但是构建设置设置为使用开发人员证书。将其更改为使用分发证书解决了这个问题。

摘要:在生成设置中也要匹配用于创建配置文件的证书。

在遇到最初发布的相同问题后,我终于在4次不同的尝试后让它工作了。所以这就是发生的事情,我不确定这是否是一个老问题(2009-07-09),但我还是会发布,以防它对你有帮助。对我有用的是……也许对你有用…

重新开始,删除密钥链中旧的私钥、公钥和证书 完成整个过程,从证书颁发机构请求证书,获得一个新的公钥、一个新的私钥和一个新的证书。注意:当它工作时,我只有一个私钥、一个公钥和一个证书 创建一个新的配置文件(使用刚才创建的证书),并将其放在Xcode的管理器窗口中。删除所有旧的废话。 运行它。

希望这能有所帮助。

我得到的最佳答案是导出您的密钥,而不是仅仅试图导入证书文件。

当您从生成请求的密钥链中导出密钥时,您将得到一个Certificates。P12文件,将需要的键滚动在一起。

然后将其导入新计算机。

对于这样的密钥,最好保留一个滚动的证书包文件,因为很多时候“公共”密钥或证书文件不足以进行恢复。

如果你有新的mac,你可以去 IOS开发中心->供应门户->证书->开发->撤销并创建新证书。我的问题解决了。我的错误是“代码签名错误:身份'iPhone开发人员'不匹配任何有效的,未过期的证书/私钥对在您的钥匙串”