无法将Qt Quick应用程序部署到Mac OSX

4

我想要将一个应用部署到Mac OSX,但是它无法工作。

在构建完应用后,似乎在Qt Creator中正常运行。我使用了QML和C++构建了这个应用程序。我使用了以下命令:

macdeployqt MyApp.app -dmg

之后会生成一个 .dmg 文件,但里面的APP无法工作。它只会打开一个空白窗口。更糟糕的是,在部署过程中执行APP后,我的 QT Creator 中的APP 也只显示一个空白窗口,并显示以下输出:

qrc:/qml/main.qml:1:1: 模块 "QtQuick" 未安装
qrc:/qml/main.qml:4:1: 模块 "QtQuick.Controls" 未安装
qrc:/qml/main.qml:2:1: 模块 "QtQuick.Dialogs" 未安装
qrc:/qml/main.qml:1:1: 模块 "QtQuick" 未安装
qrc:/qml/main.qml:4:1: 模块 "QtQuick.Controls" 未安装
qrc:/qml/main.qml:2:1: 模块 "QtQuick.Dialogs" 未安装
qrc:/qml/main.qml:1:1: 模块 "QtQuick" 未安装
qrc:/qml/main.qml:4:1: 模块 "QtQuick.Controls" 未安装
qrc:/qml/main.qml:2:1: 模块 "QtQuick.Dialogs" 未安装

使用 otool -L 命令显示如下内容:

@executable_path/../Frameworks/QtQuick.framework/Versions/5/QtQuick (compatibility version 5.2.0, current version 5.2.0)
@executable_path/../Frameworks/QtQml.framework/Versions/5/QtQml (compatibility version 5.2.0, current version 5.2.0)
@executable_path/../Frameworks/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.2.0, current version 5.2.0)
@executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore (compatibility version 5.2.0, current version 5.2.0)
@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui (compatibility version 5.2.0, current version 5.2.0)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 60.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

我已经删除了系统中所有旧的Qt库(或者我应该这样做,现在任何地方都找不到Qt了,只有5.2版本的安装包)。 有人知道发生了什么吗?

2个回答

14
自Qt 5.2以来,macdeployqt 工具增加了一个新选项,可解析您的所有 QML 文件以查看需要的框架并正确地复制它们。这是我为我的应用程序启动 macdeployqt 的方式:
macdeployqt path/to/my.app -qmldir=./path/to/my/qml/root -dmg

谢谢,我会去查看的 :) - dfranca
2
它绝对有效!谢谢 - Nuno Santos
此外,如果您未提供 qmldir,它也会导致Qt Creator自身无法编译您的项目。因此,请每次都提供它。 - Victor Polevoy

2

我在使用Qt 5.0.1和Qt 5.1.0时遇到了同样的问题。为了解决这个问题,我创建了自己的macdeployqt版本。我认为它也适用于Qt 5.2.0。请检查以下链接:https://github.com/MaximAlien/macdeployqt


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接