代码没有资源,但签名表明它们必须存在
Posted
技术标签:
【中文标题】代码没有资源,但签名表明它们必须存在【英文标题】:code has no resources but signature indicates they must be present 【发布时间】:2014-09-26 20:18:16 【问题描述】:我有一个 Qt (5.3.1) 应用程序在 codesign 的最新更新之前运行良好,但现在看门人抛出此错误:
(我用来验证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。这不是最新的 yosemite 版本,我不确定它到底是哪一个(我没有设置机器,但我确实看到更新中心正在提供对开发者预览版 8 的升级)。
有人遇到过这个错误吗?
【问题讨论】:
【参考方案1】:我遇到了和你一样的问题。为了解决此问题,您需要执行以下操作:
-
您需要在调用 macdeployqt 实用程序后更正框架结构。可以在这里找到所需的结构:Anatomy of Framework Bundles
某些 Qt 框架包含错误的 CFBundleExecutable 信息。可执行文件名称以
_debug
结尾。 (特别是这些框架:QtPrintSupport、QtPositioning、QtQml 和 QtQuick)
你可以在这里找到我的完整解决方案:Unable to sign app bundle using Qt frameworks on OS X 10.10
【讨论】:
我检查了结构,发现在任何框架中都没有 _debug 可执行文件 - 但你的回答确实为我指明了正确的方向,原来我有一个过时的 sparkle 框架。以上是关于代码没有资源,但签名表明它们必须存在的主要内容,如果未能解决你的问题,请参考以下文章
vue搭建的布局,资源全都存在,但页面上不显示,没有报错,是啥原因