Xcode 11,命令CodeSign失败,退出码为非零

14

自从(不愿意)升级到Xcode 11以来,我在尝试构建我的项目时遇到了这个错误:

CodeSign /Volumes/HDD/OpenFrameworks/of_v0.9.8_osx_release/apps/plus-pool-light/pplight-ofx-098/bin/pplight-ofx-098Debug.app (in target 'pplight-ofx-098' from project 'pplight-ofx-098')
cd /Volumes/HDD/OpenFrameworks/of_v0.9.8_osx_release/apps/plus-pool-light/pplight-ofx-098
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate

Signing Identity:     "-"


 /usr/bin/codesign --force --sign - --entitlements /Volumes/HDD/OpenFrameworks/of_v0.9.8_osx_release/apps/plus-pool-light/pplight-ofx-098/build/pplight-ofx-098.build/Debug/pplight-ofx-098.build/pplight-ofx-098Debug.app.xcent --timestamp=none /Volumes/HDD/OpenFrameworks/of_v0.9.8_osx_release/apps/plus-pool-light/pplight-ofx-098/bin/pplight-ofx-098Debug.app

/Volumes/HDD/OpenFrameworks/of_v0.9.8_osx_release/apps/plus-pool-light/pplight-ofx-098/bin/pplight-ofx-098Debug.app: code object is not signed at all
In subcomponent: /Volumes/HDD/OpenFrameworks/of_v0.9.8_osx_release/apps/plus-pool-light/pplight-ofx-098/bin/pplight-ofx-098Debug.app/Contents/Frameworks/GLUT.framework
Command CodeSign failed with a nonzero exit code

我已经尝试了清理项目、重置登录钥匙串以及重新启动电脑,但我仍然收到这个错误...该怎么办?

我正在使用OpenFrameworks构建一个OSX应用程序,而不是iOS应用程序。当我在Xcode 10.3中构建时,没有错误。

这个问题的独特之处在于它是针对Xcode 11而不是10的,而且那个问题的任何答案都没有对我起作用!


这不是重复的问题,因为另一个问题涉及Xcode 10,而这个是Xcode 11。 - JackKalish
1
是的。尝试那些答案,错误仍然是相同的签名错误。 - Desdenova
我尝试了所有那些答案,但都没有起作用。在更新到Xcode 11之前,我没有遇到这个错误,所以我认为这是一个新的、不同的错误。 - JackKalish
“Command CodeSign failed with a nonzero exit code”这个信息并不足够。如果您打开构建日志并选择代码签名调用行右侧的行图标,会显示哪些其他错误? - trojanfoe
好的,你可以看到codesign在签署GLUT.framework时出现了问题。我认为可以通过使用--deep标志来解决这个问题。编辑你的构建设置并将--deep添加到其他CodeSign标志(或类似的内容)中。 - trojanfoe
9个回答

15

如果您将文件夹作为“文件夹引用”添加到项目中(在Xcode中,该项目将具有蓝色文件夹徽标),那么您可能会遇到此错误。

  • 删除文件夹(移到垃圾桶)
  • 重新添加文件夹,并在对话框中选择“创建组”而不是“文件夹引用” 添加文件夹对话框

13

我通过以下方法解决了完全相同的问题:

  1. 在"构建设置"中将“其他代码签名标志”添加 --deep。
  2. 在您的目标的“签名和功能”中,点击左上角的“+功能”,并选择“强化运行时”。
  3. 然后在列表中启用“禁用库验证”。

我不确定使用此功能是否会有任何缺点,但我的应用程序在 macOS 和 iOS 上编译和运行良好。


7

我今早升级到XCode-11后遇到了同样的错误。可以在模拟器中构建,但无法在设备上构建。

这个线程帮助解决了问题,以下是我总结的步骤:

https://dev59.com/RFQK5IYBdhLWcg3wHsZJ#52628909

  • 打开钥匙串访问。
  • 锁定“登录”钥匙串。(在左上角的“登录”上右键单击)
  • 解锁,输入您PC账户密码。
  • 在产品菜单中清理项目。
  • 再次构建它。

救星奖授予@NathanNovak - Neeraj Dwivedi
3
对我没有任何作用。 - helioz
3
这在我的Xcode 11.5版本的项目中奏效了(11E608c)。至少我认为是这样... 我还穿着我的特殊部署袜子,点燃了一支神圣的蜡烛,并献祭了一只鸡,所以你的情况可能有所不同。 - levigroker
2
哈哈,@levigroker,我认为你的特殊部署袜子确实也有帮助...或许还有那只鸡。 - NathanNovak

7

我通过在构建设置 > 签名中的其他代码签名标志中添加--deep来解决了这个问题。


1
我正在运行 Xcode 11.4.1(非测试版),并启用了 Mac Catalyst 选项。不幸的是,即使使用 --deep,我仍然会遇到原始错误。 - Michelle
这对我有用。然后几天后问题又出现了。重新启动我的 Mac,它又可以工作了。 - Eric Soyke
我刚遇到了同样的问题。我加了“--deep”,但还是不行,然后重启了我的 Mac,它又可以用了。也许只需要重新启动一下就好了。 - Jesper Kristiansen

3

我所有的Carthage框架都遇到了同样的问题,解决方案如下:

在Target-> [AppName] -> General -> "Frameworks, Libraries and Embedded Content"下

选择“Do Not Embed”选项,针对有问题的框架。

更多信息可以查看thread

注意:这可能并不能完全解决问题,不要忘记尝试清理项目、重新启动Xcode甚至重新启动Mac。


太强了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - admin

1

我是这样解决问题的: 在添加了两个“.png”文件之后,Xcode(版本13.2.1(13C100))就无法编译了。我将这两个文件集成到一个RTF文件中(从Xcode生成),然后成功编译。就是这样。


1
今天我在添加3个PNG文件后,使用Xcode 13.4也遇到了同样的问题。通过使用 xattr -cr <file> 命令来移除扩展属性,问题得以解决(更多信息请参见 https://developer.apple.com/forums/thread/76289)。 - jaume

1

我在添加两个 .PNG 文件后,遇到了与 Xcode 14.3.1 相同的问题。

运行
xattr -cr 修复了这个问题


0
我在Xcode 13中解决了一个类似的错误,只需将我的基本SDK更改为最新的SDK(即iOS 15)。

0
我通过确保构建设置中的代码签名标识符是正确的 - 而不仅仅是一般的苹果开发,并在产品菜单中清理了构建文件夹来解决了问题。当我再次运行它时,它成功构建而没有错误。

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