2010-11-05 5 views
0

Мы написали приложение, которое сильно использует QML, и теперь, когда пришло время попытаться его развернуть, я столкнулся с действительно раздражающими проблемами из-за зависимости от QtWebKitРазвертывание приложения на Qt QML на OSX (с помощью WebKit)

Я скомпилирую приложение, и все работает отлично на моем компьютере. Затем я запускаю скрипт macdeployqt на .app и по какой-либо причине компонент WebView QML говорит: «Модуль QtWebKit не установлен»

Каков правильный способ развертывания приложения на основе QML в OSX, которое полагается на QtWebKit/WebView?

ответ

1

macdeployqt не обрабатывает QML импорт плагин еще: http://bugreports.qt-project.org/browse/QTBUG-14342

Вы можете сделать это вручную (например, для QMLViewer):

1) Скопируйте плагин вы заинтересованы в от $ QTDIR/импортирует каталог в $ QTDIR/bin/QMLViewer.app/Contents/MacOS, так что есть, например,

QMLViewer.app/Contents/MacOS/QtWebKit/qmldir

2) Закрепить ссылки на плагин импорта в рамках Qt с использованием install_name_tool:

install_name_tool -смена/путь/к/кварты/* Библиотека/QtCore.framework/Версия/4/QtCore @executable_path /../ Каркасы/QtCore.framework/Версия/4,0/QtCore QMLViewer.app/Contents/MacOS/QtWebKit/libqmlwebkitplugin.dylib

сделать то же самое для другие Qt-библиотеки, от которых зависит плагин (по крайней мере, QtGui).

Более подробную информацию о ссылках крепления можно найти в http://doc.trolltech.com/4.7/deployment-mac.html

0

MartinJ's answer дал мне трудное время.

Для тех, кто использует Qt Quick 2 - использовать QtWebkit из папки $QTDIR/qml вместо этого, или вы будете иметь много сообщений, плагинов qtwebkit не реализует qqmltypesextensioninterface.