Qt 5.1rc1 在 mac OS X 上部署,我如何部署一个简单的 QtQuick2 应用程序?

Posted

技术标签:

【中文标题】Qt 5.1rc1 在 mac OS X 上部署,我如何部署一个简单的 QtQuick2 应用程序?【英文标题】:Qt 5.1rc1 Deployment on mac OS X, how could I deploy a simple QtQuick2 apps? 【发布时间】:2013-07-15 06:37:05 【问题描述】:

为什么是rc1而不是release版本?因为release版本的macdeploy的bug比rc1多

qml 很简单

import QtQuick 2.1

Rectangle
width: 400
height: 300
color: "black"

我的.pro

QT += core gui qml quick

CONFIG += c++11

SOURCES += \
main.cpp

OTHER_FILES += \
main.qml

但我什至无法部署这个简单的应用程序

我的脚本

#******copy main.qml into the bundle**********
cp /Users/Qt/program/experiment_apps_and_libs/qmlTest2/main.qml /Users/Qt/program/experiment_apps_and_libs/qmlTest2/qmlTest2.app/Contents/MacOs

#*******create the folder and copy the plugins into the bundle**********
mkdir qmlTest2.app/Contents/PlugIns
mkdir qmlTest2.app/Contents/PlugIns/QtQuick

mkdir qmlTest2.app/Contents/PlugIns/QtQuick/LocalStorage
cp /Users/yyyy/Qt5.1.0RC1/5.1.0-rc1/clang_64/qml/QtQuick/LocalStorage/libqmllocalstorageplugin.dylib qmlTest2.app/Contents/PlugIns/QtQuick/LocalStorage
cp /Users/yyyy/Qt5.1.0RC1/5.1.0-rc1/clang_64/qml/QtQuick/LocalStorage/plugins.qmltypes qmlTest2.app/Contents/PlugIns/QtQuick/LocalStorage
cp /Users/yyyy/Qt5.1.0RC1/5.1.0-rc1/clang_64/qml/QtQuick/LocalStorage/qmldir qmlTest2.app/Contents/PlugIns/QtQuick/LocalStorage

mkdir qmlTest2.app/Contents/PlugIns/QtQuick.2
cp /Users/yyyy/Qt5.1.0RC1/5.1.0-rc1/clang_64/qml/QtQuick.2/libqtquick2plugin.dylib qmlTest2.app/Contents/PlugIns/QtQuick.2
cp /Users/yyyy/Qt5.1.0RC1/5.1.0-rc1/clang_64/qml/QtQuick.2/plugins.qmltypes qmlTest2.app/Contents/PlugIns/QtQuick.2
cp /Users/yyyy/Qt5.1.0RC1/5.1.0-rc1/clang_64/qml/QtQuick.2/qmldir qmlTest2.app/Contents/PlugIns/QtQuick.2

#**********call macdeployqt***************
macdeployqt /Users/Qt/program/experiment_apps_and_libs/qmlTest2/qmlTest2.app -verbose=3

我在我添加的每个插件上运行 otool -L,它们都成为 macdeployqt 之后的相对路径

当我通过 lldb 运行程序时,它总是给我错误消息

**file:///Users/Qt/program/experiment_apps_and_libs/qmlTest2/main.qml:23:1:未安装模块“QtQuick” import QtQuick 2.1 **

我被困在一个空白的白色屏幕上,没有关于我做错了什么的信息。 没有文档,当前文档几乎没用,因为macdeploy的bug从Qt5.0.1开始就没有修复过,我也不知道 他们什么时候修复它(也许永远不会修复)。 没有信息告诉我我需要哪个 dylib。这非常令人沮丧! 有人知道如何在 mac os x 上部署 QtQuick2 应用吗?

如果这样继续下去,也许我最好继续使用 QWidget,至少我不必再遭受部署麻烦。 我很惊讶他们花了很多时间来开发 QtQuick2 但没有发布有用的文档来教我们 我们如何在他们的目标平台上部署应用程序。

【问题讨论】:

【参考方案1】:

看看这个答案。 感谢 miks131、MaximAlien 和 lasconic。

记得输入正确的 qmldir,否则 macdeploy 会 不要将 QtQuick2 和 QtQuick 文件夹复制到包中

work around

【讨论】:

以上是关于Qt 5.1rc1 在 mac OS X 上部署,我如何部署一个简单的 QtQuick2 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac Os X 上使用 CGEvent 和 Qt

使用 Qt 在 OS X/Mac 上构建 C++ 库

Qt Mac OS 应用程序部署缺少框架

在 Mac OS X 上安装多个版本的 Qt

OpenAL 是不是支持 Mac OS X 上的 5.1 输出?

Qt 5.4 - Mac OS X 10.6 支持