我正在为具有最新Xcode版本的macOS开发SFML应用程序。
当我尝试签署SFML框架时出现"Command CodeSign failed with a nonzero exit code"
错误。我在构建阶段下的Target中的“ Link Binary with Libraries”和“ Copy Files”下添加了它们。以前,我在/Library/Frameworks
下使用本地框架,并且运行良好。
现在我需要创建档案.app
。我已经尝试了很多其他文章(例如锁定和解锁我的钥匙串)上看到的东西,但是没有任何效果。仍然出现该错误。
“链接库中的二进制文件”中的我的SFML框架
/ Users / lounesksouri / Library / Developer / Xcode / DerivedData / Squadro-gqwjbvsooypqaifxxyzhdrahkdpo / Build / Intermediates.noindex / ArchiveIntermediates / Squadro / InstallationBuildProductsLocation / Applications / Squadro.app / Contents / Frameworks / sfml-ions :捆绑格式无法识别,无效或不合适
命令CodeSign失败,退出代码非零
[好,经过很长时间,我解决了我的问题。
使用Build Phases
选项卡中已经存在的脚本要简单得多,该脚本是在使用SFML App
Xcode模板时生成的(请参阅原始脚本here)。一开始我尝试过,但是没有用,所以我失望了。
但是,在此脚本中,对于在macOS上正常安装SFML而言,前三行不是很好。我们需要使用Frameworks
和lib
文件夹的正确路径来修改这些行,如下所示:
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
,则会收到错误消息。解决此问题的方法是检查Disable Library Validation
下的Target/Signing & Capabilities
,以允许应用程序进入load plug-ins or frameworks signed by other developers
。
最后,如果我们创建归档文件并启动应用程序,那么一切都会按计划正常进行。