命令 /usr/bin/codesign 失败,退出码为1。

63
我遇到了以下错误:

/usr/bin/codesign命令退出代码为1

以下是我尝试修复此问题所做的事情:
  • 将Bundle标识符设置为com.server.pgmname
  • 将代码签名设置为“任何iPhone OS设备”
  • 将代码签名标识设置为我的分发标识。
只有在我尝试在设备上构建时才会出现此错误,模拟器上一切正常。
你有什么建议吗?

1
你总是可以在模拟器上进行构建,不需要证书。顺便问一下,你正在进行什么类型的构建?Debug / Ad-Hoc / Distribution> - Anurag
日志中有任何错误显示吗?(Console.app) - Peter Loron
1
这可能看起来是一个显而易见的问题,但是您是否安装了具有正确捆绑标识符或通配符配置文件的预配文件?预配文件实际上是分发配置文件而不是开发配置文件吗?如果是分发配置文件,它是应用商店配置文件还是 Ad-hoc 配置文件?请注意,对于分发,您需要配置适当的 Entitlements.plist 文件,否则它将无法安装。 - Nimrod
@daniel 那个方法只能用几个小时,然后又停止了。这里有一个 Xcode 的 bug,但我不知道如何简单地复制它。 - UKDataGeek
33个答案。谢谢苹果。 - user5306470
显示剩余2条评论
43个回答

61
我遇到了完全相同的错误,并且尝试了这个页面上其他地方建议的所有方法。对我来说问题在于,在钥匙串访问中,实际的苹果WWDR证书被标记为“始终信任”。它需要是“系统默认值”。您的开发和发布证书也是如此。如果其中任何一个被错误地设置为“始终信任”,显然会导致这个问题。
因此,在Keychain Access中,单击“Apple Worldwide Developer Relations Certificate Authority”证书,选择“获取信息”。然后,展开“信任”设置,并为“在使用此证书时:”组合框选择“系统默认值”。
叹气:对于那些坚持要对这个答案进行投票的人,我并不是声称这是解决这个问题的唯一方法。这是一种解决方法。它可能对你不起作用。有多种原因导致这个codesign失败。

112
不用谢,@Phil。这种问题让我考虑放弃编程,过着流浪生活,采集浆果,狩猎松鼠,再也不碰电脑了…… - Nate
@Nate 哇,谢谢伙计,那就是问题所在... :) 真是太棒了。 - Jorge Y. C. Rodriguez
14
我是唯一一个按照这些步骤却没有成功的人吗?(实际上系统默认值已经设置好了) - Stas
2
我的 When using this certificate 已经设置为 System Defaults,尽管 XCode 以前显示了 error。如果你正在运行 El Capitan,那么选择 Always Trust,这对我来说解决了错误。 - Apurva
2
@Nate Apple只是让人们有这种感觉。 - DenLilleMand
显示剩余6条评论

31

我遇到了完全相同的问题,这个方法对我很有用:

Xcode > Preferences > Accounts > View Details > 只需刷新Provisioning Profile

看起来Xcode中的帐户没有更新最新的provisioning profiles,所以快速刷新就解决了这个问题。


这很简单,是尝试的第一件事。 - Bradley Thomas
是的,我的所有证书已经设置为系统默认的信任级别。进入查看详细信息并让预配配置文件刷新对我有用。 - josh527
太好了,我很高兴能帮到你们。我知道有时候这些东西会让人感到非常沮丧。干杯! - mgm
14
我在我的 Xcode(版本:8.3.3)中找不到任何“查看详情”按钮。 - Ionut Necula
4
版本9.4.1上没有“查看详情”的选项。翻译完成,无其他内容。 - Yousuf Azad

29

即使这听起来可笑,我还是觉得有必要分享一下。

我在我的Mac上设置了第二个开发者账户,但无法对任何内容进行代码签名。错误信息显示"用户取消了操作"。

简单的重新启动解决了这个问题。


2
重启对我也起作用了。我不知道为什么,但无论如何还是谢谢你。 - kufi
我会试一下,但是这样我就不能为这个答案投赞成票了。 - pkarc
1
我尝试了所有的方法,拒绝相信重启会解决问题,但它确实解决了!感觉就像是Windows 95的解决方案。 - mvandillen
先试试这个。如果这个可以的话,就不需要尝试其他的了。 - Skywalker
谢谢,这对我有用。在解决了Apple ID会话问题(按照MGM的答案)并重新启动后,codesign问题就消失了。来自Xcode 9.3。 - user3064009
这种事情让我感到非常烦躁,但是在简单地重命名项目后,经过太多问题的摆弄和浪费了数小时之后,最后一个奇怪的代码签名问题与Bolts框架有关,只需要重新启动一次就解决了。 - drew..

11

我花了约2-3个小时的时间使用Parse API共同开发项目。结果发现嵌入式框架引起了问题。请确保您设置了“复制时代码签名”(见图片)。 如果这样做不起作用,请从列表中删除Parse和Bolts框架,并将它们从项目中移除,然后再次添加它们。

输入图像说明


10

我的解决办法是意识到Xcode没有访问证书的权限。请检查你的证书是否可被Xcode访问。前往钥匙串访问 -> 证书 -> 打开证书并双击私钥 -> 选择访问控制。

在此输入图片描述


哇,没有这个,所有其他解决方案都不重要。谢谢! - Emil Kaminski

9

我刚刚解决了这个问题。我创建了一个资源文件夹,里面放了我的图标,然后通过右键单击 > 添加文件 > [选择资源文件夹] 的方式将其添加到我的项目中。显然,这是一个不好的做法。

相反,在您的项目中创建一个新的(在我的情况下称为“资源”),然后右键单击 > 添加文件,选择每个文件。项目立即构建成功。


5

对我来说,我刚刚升级了到 Xcode 8,并将我的 Swift 2.2 代码转换为 Swift 3 代码后,发现在单元测试和 UI 测试中出现了错误。我只需清理一下,然后所有的错误都消失了。


3

经过数小时的谷歌搜索和尝试不同的方法,我找到了解决方法:

  1. 确保在Keychain Access中的System > Certificates选项卡中没有证书。从那里删除所有重复的证书。

  2. 在证书中安装WWDR中间证书,除了开发人员证书之外,并确保您在Login > Certificates选项卡上看到它。


这是因为证书重复了,删除重复的证书后问题得到解决。 - Ekambaram E

3

如果将来有人遇到这个问题(不想重建项目),需要问的另一个问题是您的产品名称是否有空格。我建议查看项目和目标的属性(右键单击->获取信息)。对于我的项目,唯一需要空格的地方是捆绑显示名称的plist。


这对我来说也是一样的,改变它修复了它。 - zekel

3
很多情况下,当用户在Models.scnassets文件夹中的纹理文件没有文件扩展名时,会经常出现错误/usr/bin/codesign failed with exit code 1macOS 经常生成带有隐藏扩展名的文件。
例如:您有一个名为myTexture的文件,但它也必须包括一个扩展名 - myTexture.png

1
谢谢,你节省了我的时间...我有一个没有扩展名的纹理图像。 - Mohsen
我很高兴我做到了)) - Andy Jazz
1
对我有用。虽然我的.png文件被认为是.png,但它的文件名中没有.png。当我在文件名中添加了.png后,就不再出现错误了。谢谢Andy! - Krivvenz

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