Развертывание приложения на основе QT QML на OSX (с WebKit)
Вопрос
Мы написали приложение, которое широко использует QML, и теперь, когда пришло время попытаться развернуть его, я сталкиваюсь с действительно раздражающими проблемами из -за зависимости от qtwebkit
Я составляю приложение, и все работает нормально на моем компьютере. Затем я запускаю сценарий MacDeployQT на .APP, и по какой -то причине компонент QML WebView говорит: «Модуль QtWebKit не установлен»
Какой правильный способ развертывать приложение на основе QML на OSX, который опирается на QTWebkit / WebView?
Решение
MacDeployQT не обрабатывает плагины Import QML:http://bugreports.qt-project.org/browse/qtbug-14342
Вы можете сделать это вручную (например, для QmlViewer):
1) Скопируйте плагины, которые вас интересуют из каталога $ QTDIR / IMPORT в $ qtdir / bin / qmlviewer.app / contents / macos, так что есть, например,
Qmlviewer.app/contents/macos/qtwebkit/qmldir.
2) Исправьте ссылки на плагин Import на фреймворки QT с использованием install_name_tool:
install_name_tool -change /path/to/qt/*lib/qtcore.framework/versions/4/qtcore @executable_path /../ frameworks/qtcore.framework/versions/4.0/qtcore qmlviewer.app/contents/macos/qtwebkit/libqmlwewer.app/contents/macos/qtwebkit/libqmlwewer.pp .dylib
Сделайте то же самое для других библиотек Qt, которые плагин зависит от (по меньшей мере, Qtgui).
Больше информации о фиксации ссылок можно найти в http://doc.trolltech.com/4.7/deployment-mac.html
Другие советы
Ответ Мартинья дал мне тяжелые времена.
Для тех, кто использует Qt быстро 2 - использование QtWebkit
из папки $QTDIR/qml
Вместо этого, или у вас будет много сообщений, которые плагин qtwebkit
не реализует qqmltypesextensioninterface
.