我有一个Qt(5.3.1)应用程序,直到最新的codesign更新工作正常,但现在看门人抛出此错误:
代码没有资源,但签名表明它们必须存在
(我用来验证应用程序包的命令是:spctl -at exec -vv path / to / .app)
部署脚本构建应用程序包,调用macdeploy,复制所有丢失的qt info.plist文件,然后调用codesign:
codesign --force --deep --verify --verbose --no-legacy-signing --sign“签署权限字符串”/path/to/.app
由于过时的资源包络错误,添加了--no-legacy-signing . 自从它最后一次工作以来没有其他任何改变 .
构建和协同设计在OS X Yosemite上完成,安装了Xcode 6.0.1 . 这不是最新的优胜美地版本,我不确定它实际上是哪一个(我没有设置机器,但我确实看到更新中心正在提供升级到开发者预览8) .
有没有人遇到过这个错误?
1 回答
我遇到了同样的问题 . 这是您需要做的事情来解决问题:
调用macdeployqt实用程序后,需要更正Framework结构 . 可在此处找到所需的结构:Anatomy of Framework Bundles
某些Qt框架包含错误的CFBundleExecutable信息 . 可执行文件名以
_debug
结尾 . (特别是这些框架:QtPrintSupport,QtPositioning,QtQml和QtQuick)你可以在这里找到我的完整解决方案:Unable to sign app bundle using Qt frameworks on OS X 10.10