Xcode 11.2.1 - 命令 CodeSign 失败,退出代码非零

Xcode 11.2.1 - Command CodeSign failed with a nonzero exit code

我正在使用最新的 Xcode 版本为 macOS 开发 SFML 应用程序。

我在尝试签署 SFML 框架时遇到 "Command CodeSign failed with a nonzero exit code" 错误。我在 Target 的构建阶段下的“Link Binary with Libraries”和“Copy Files”下添加了这些。之前,我在 /Library/Frameworks 下使用我的本地框架,它工作得很好。

现在我需要创建一个存档 .app。 我已经尝试了很多在其他帖子上看到的东西(比如锁定和解锁我的钥匙链),但没有任何效果。仍然出现该错误。

我在“Link 带库的二进制文件”中的 SFML 框架

/Users/lounesksouri/Library/Developer/Xcode/DerivedData/Squadro-gqwjbvsooypqaifxxyzhdrahkdpo/Build/Intermediates.noindex/ArchiveIntermediates/Squadro/InstallationBuildProductsLocation/Applications/Squadro.app/Contents/Frameworks/sfml-system.framework/Versions/A: bundle format unrecognized, invalid, or unsuitable

Command CodeSign failed with a nonzero exit code

好的,经过很长时间,我解决了我的问题。

如果使用 SFML App Xcode 模板生成的 Build Phases 选项卡中已经存在的脚本要简单得多(参见 here 原始脚本).起初我尝试过,但没有用,所以我放弃了。

但是,在这个脚本中,前三行不是很好,对于 macOS 上的正常 SFML 安装。我们需要用 Frameworkslib 文件夹的正确路径修改这些行,如下所示:

SFML_DEPENDENCIES_INSTALL_PREFIX="/Library/Frameworks"
CMAKE_INSTALL_FRAMEWORK_PREFIX="/Library/Frameworks"
CMAKE_INSTALL_LIB_PREFIX="/usr/local/lib"
FRAMEWORKS_FULL_PATH="$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH/"

其次,仍然存在代码签名问题:存档将创建,但如果我们启动 .app,我们将得到一个错误。这个问题的解决方法是勾选Target/Signing & Capabilities下的Disable Library Validation,让应用程序可以load plug-ins or frameworks signed by other developers.

最后,如果我们创建存档并启动应用程序,一切都会按计划正常进行。

我在 Xcode 的新更新中遇到了这个问题。我正在阅读您的讨论,并做了一些意外修改。我绝对不是专家,但我所做的解决了问题,所以我不再收到 tgis 错误。所以我添加了 sfml 库(5 个库),其路径写在构建设置 -> 框架 swarch 路径中。并且此添加会自动将它们添加到“构建阶段”部分下的“嵌入式框架”中。我所做的是取消选中所有 5 个库 "Code sign On copy" 的复选框。谢谢你们给我解决 "solving" 问题的路径:))))

对于代码签名问题:

  1. 打开一个终端,
  2. 转到 Framework 文件夹 (cd /Library/Frameworks) 并唱歌。
  3. 选择你的身份
security find-identity -vp codesigning
  1. 签署框架!
codesign -s AD90FAFAFAFAFAFAFAF-YOURHASH-9D6 ogg.framework
codesign ... all the others
  1. 运行 尽情享受吧!