代码没有资源,但签名表明它们必须存在

时间:2014-09-26 20:18:17

标签: macos qt codesign osx-yosemite

我有一个Qt(5.3.1)应用程序,在代码签名的最新更新之前工作正常,但现在看门人抛出了这个错误:

  

代码没有资源,但签名表明它们必须存在

(我用来验证app bundle的命令是: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 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。这是您需要做的事情来解决问题:

  1. 调用macdeployqt实用程序后,需要更正Framework结构。可以在此处找到所需的结构:Anatomy of Framework Bundles
  2. 某些Qt框架包含错误的CFBundleExecutable信息。可执行文件名以_debug结尾。 (特别是这些框架:QtPrintSupport,QtPositioning,QtQml和QtQuick)
  3. 您可以在此处找到我的完整解决方案:Unable to sign app bundle using Qt frameworks on OS X 10.10