125
  • 证书有效
  • 代码 5
  • IOS 7

代码签名错误:未找到代码签名身份:未找到与构建设置中指定的配置文件(“iOS 团队配置文件:*”)匹配的代码签名身份(即证书和私钥对)。CodeSign 错误:SDK“iOS 7.0”中的产品类型“应用程序”需要代码签名

4

19 回答 19

68

对于证书

  1. 撤销以前的证书。
  2. 生成新的开发证书。
  3. 下载证书。
  4. 双击以放入 KeyChain。

对于配置文件

  1. 创建新的或编辑现有的配置文件。
  2. 下载并安装。

对于 BundleIdentifier。

  1. com.yourcompanyName.Something(与 AppId 中的内容相同)

在此处输入图像描述

代码签名身份。

  1. 选择您创建的供应配置文件。

在此处输入图像描述

于 2013-10-05T12:23:13.140 回答
43

我对这个问题的解决方法是:

Xcode > 首选项。在帐户中单击您的 Apple ID。单击查看详细信息,单击您的项目 Provisioning Profile(我认为这会有所帮助),然后单击左下方的刷新按钮。

于 2014-10-29T03:23:35.200 回答
17

以为我会用我自己的个人经验来补充其他答案。

最近我遇到了一个问题,即会构建两个目标,两个目标会失败并出现以下错误:

代码签名错误:未找到代码签名身份:未找到与团队 ID“XXXXXXXXXX”匹配的有效签名身份(即证书和私钥对)。CodeSign 错误:SDK“iOS 7.1”中的产品类型“应用程序”需要代码签名

尽管已经更新了 Xcode 和iOS Developer Center中的所有内容,但仍然如此。

提示是构建失败消息中显示的团队 ID 已过期。

果然,project.pbxproj在文本编辑器中打开 Xcode 的文件找到了旧的团队 id:

D29A93A318AB96440099C177 = {
        DevelopmentTeam = XXXXXXXXXX;
};

顺便说一句,要获取您的project.pbxproj文件,请选择您的.xcodeproj文件并显示内容,如下所示:

在此处输入图像描述

搜索目标 Id D29A93A318AB96440099C177,我可以看到它与失败的目标之一匹配:

targets = (
    F5E8B19A16E64505006F22D4 /* MyTarget1 */,
    93DB2342183F737100BEA69F /* MyTarget2 */,
    D29A93A318AB96440099C177 /* MyTarget3 */,
    D200F4B518AB968A00F58C21 /* MyTarget4 */,
    F5E8B1C016E64505006F22D4 /* MyTarget5 */,
    589FB35119114DED003D9350 /* MyTarget6 */,
);

在这种情况下,MyTarget3。为了解决这个问题,一个简单的文本搜索将旧的团队 ID 替换为新的正确 ID。问题解决了。

总结一下,希望您的情况能够使用上面的答案得到解决,而不是深入研究 Xcode 项目文件的复杂性。但是,如果没有,并且错误显示无效的团队 ID,则值得检查该团队 ID 是否仍然存在。

于 2014-05-09T08:27:13.950 回答
9

我在开发中遇到了完全相同的问题。我解决了

  1. 转到 XCode 首选项,查看 Apple ID 的详细信息,然后删除抱怨的配置文件。
  2. 转到 Keychain Access,并删除与您刚刚删除的配置文件相关的开发证书。
  3. 在 Apple 会员中心,下载您刚刚在本地删除的开发配置文件,双击该文件以确保它出现在 XCode 中。
  4. 将刚刚删除的开发证书下载到本地,双击确保出现在 Keychain Access 中。
  5. 现在去应该不错。
于 2015-10-06T18:49:54.137 回答
8

我刚和詹金斯有这个问题。

解决方案是复制证书并将其粘贴到系统钥匙串中,否则 Jenkins 无法读取证书。

于 2015-01-14T01:36:42.540 回答
7

您不必删除所有配置文件来解决此问题,

在管理器中查看我的设备配置文件时,我发现我的一个配置文件无效。然后我转到开发人员证书、标识符和配置文件页面,所有配置文件都处于活动状态、绿色且看起来不错,但是当在我的设备上显示为无效的配置文件上单击编辑时,我看到相关帐户中的复选框未选中即使选中了全选。我选中了将配置文件与我的证书相关联的框,下载了配置文件,一切都已修复。

在您的个人资料网页上单击“编辑” 在您的个人资料网页上

即使选中“全选”,您也可能会看到没有关联的证书。 编辑您的个人资料![][1]

于 2014-04-08T17:40:57.367 回答
4

对我来说,将 Project → Targets/[Your project] → General → Team 设置为“None”解决了这个问题。

于 2015-03-15T20:39:50.133 回答
4

经历了一段荒谬的时间试图解决其中一个问题,我绝对可以看到在某些情况下这些答案中的大多数在哪里是正确的,我的情况并不少见。

我试图部署到应用商店以使用 TestFlight 进行测试。以前的开发人员(不再是项目或公司的一部分)创建了 IOS 分发证书。xcode 试图告诉我的是,是的,证书在会员中心,但是伙计,你完全不能使用它,因为它不是你的。我没有用它签名所需的私钥,也没有再多的刷新、重启、撤销对我有帮助。您需要开发者和分发证书才能上传到应用商店。

解决方案是使用来自我的钥匙串的新签名请求在会员中心创建一个新的生产分发证书。在您在线创建证书时,此过程已得到很好的记录和描述。完成后,在 xcode 中刷新您的帐户以下载到您的钥匙串,您将获得金牌。我希望这对某人有帮助!

于 2015-05-02T13:11:19.683 回答
2

听起来可能很奇怪,但对我来说,我重新启动了我的 mac。我无法解释为什么以及发生了什么,但它现在可以工作了。希望它会帮助某人

于 2014-04-25T10:27:38.087 回答
2

当我使用纯命令行/jenkins 构建脚本并且我不希望为集成环境手动设置任何单个 UI/RDP 时,我到达了这个线程。

几个小时后,尝试使用 jenkins 解决完全相同的问题。
关键是“安全列表-钥匙串-s <your_keychain_name>”

--- 长篇大论 ---
我在 jenkins 中使用脚本来覆盖每个项目的设置(配置配置文件和签名身份)
升级到 Xcode 7 后,我必须在“create-”之后更改“list-keychains”上方的脚本添加钥匙扣”

在此处更新脚本

于 2015-10-27T04:26:11.220 回答
1

您无需删除所有配置文件。我遇到了同样的问题并通过安装丢失的证书来修复它。您可能忘记为用于代码签名的配置文件安装所需的证书。

  • 确保您已将所需的证书(开发/分发)安装到代码签名配置文件(开发/分发)的钥匙串中。
于 2014-10-22T07:42:31.727 回答
1

确保您的证书与您的私钥相关联

打开钥匙串访问、登录、证书。在列表中找到证书,看看它是否与您的私钥正确配对。

如果证书未使用私钥签名,请将其删除,转到苹果开发者页面并创建新证书。有时需要撤销旧的。这个新证书现在将使用您的私钥正确签名。

现在,当您拥有新证书时,重新创建所需的配置文件,该配置文件将在创建过程中包含新证书。

请注意,当您团队中的某个人使用他的私钥重置此证书时,在刷新过程中可能会再次出现同样的问题。我不确定,但似乎团队中的每个开发人员都必须拥有自己的分发证书。

于 2016-03-02T10:58:22.540 回答
1

针对 Xcode 7 上的 iOS 8 和 9。我的开发配置文件很好,但在归档应用以上传到应用商店时出现此错误。这是我所做的:

Xcode > 首选项 > 帐户 > 查看详细信息。在 iOS Distribution 旁边,单击“重置”按钮。这将使您正在使用的分发配置文件无效(因为您重置了分发证书),因此请编辑配置文件以包含新重置的证书。

确保同时下载新的分发证书和新编辑的分发配置文件。重新启动 Xcode。

于 2015-10-22T16:37:30.373 回答
1

尝试更改捆绑标识符:项目 -> 目标/[您的项目] -> 常规 -> 捆绑标识符

如果应用程序在 AppStore XCode 上发布,则不允许创建具有相同捆绑标识符的应用程序。

于 2015-08-07T15:30:29.693 回答
1

显然,这个问题有不同的原因。:)

就我而言,我的帐户登录已过期...我通过以下方式解决了它:

XCode -> Preferences -> Account -> Apple IDs -> 选择相关ID并更新登录...

希望这可以帮助!

于 2017-01-05T22:47:17.170 回答
0

安装fastlane后,您可以通过以下方式创建和安装开发证书

cert --development
sigh --development
于 2016-05-10T19:51:47.393 回答
0

当我使用 Xcode 7.3、OSX 10.11.4 为 iOS 构建设置新的 Jenkins 框时,我遇到了这个模棱两可的错误,“Command /usr/bin/codesign failed with exit code 1”。

就我而言,我做对了几件事: 1.是的,我已将我的证书添加到钥匙串中,包括 Apple 的根证书和团队的证书。2.是的,我通过 xcode 首选项下载了正确的配置文件。3.是的,它甚至在 xcode 中手动构建。

但是,对于 jenkins,xcode 上可能存在缓存问题。有效的是: 1.退出 Xcode GUI。2.重新进入,手动运行一次构建。3.只有这样Xcode才会提示允许钥匙串访问授权。4.Jenkins 有一些设置可能可以解决这个问题,但我的机器是安全的,所以我点击“始终允许 xcode 访问钥匙串”。

于 2016-04-11T18:35:45.890 回答
0

转到问题导航器并检查是否Signing Identity:存在于您的Keychain Access中。如果不是,请下载.cer文件并将其附加到钥匙串中。

于 2015-12-22T09:19:53.123 回答
0

拉了半天,终于发现了一个问题。我在创建Provisioning Profile时选择了错误的证书,通过选择正确的一个,它对我有帮助。在你的情况下,如果它是多个那么你必须尝试选择一一解决这个问题。

于 2016-01-12T06:13:10.617 回答