Mac 打包Qt程序包含WebEngineView时的问题记录
参考:https://www.jianshu.com/p/5b42d5d51ed5
- 当项目包含qml文件时需要多加-qmldir=,例如
macdeployqt 你的App路径 -dmg -qmldir=/usr/local/Cellar/qt/5.11.2/qml
其中/usr/local/Cellar/qt/5.11.2/qml是我的Qt安装路径下的qml文件夹。
- 当你的qml里边用到WebEngineView时,打包完成双击打开会是一片空白,调试时控制台会打印
module "QtWebEngine" is not installed
字样。
需要做的为以下两步:
1.将/usr/local/Cellar/qt/5.11.2/qml(我的Qt安装方式为brew install qt)文件夹下的QtWebEngine和QtWebChannel这两个文件夹复制到 你的App/Contents/Resources/qml目录下边,如下图
2.将/usr/local/Cellar/qt/5.11.2/lib目录下所有framework复制替换到 你的App/Contents/Frameworks目录下,如下图
注:其实不必全部复制,只复制你App所有跟Qt安装目录的framework相同名字的即可,已实测可行,但是会发现字体样式会凌乱,像3D那些framework明显没用到的可以不复制,全复制只是担心会出现一些问题而已。
- release 模式下JavaScript交互失效
在.pro文件添加 QTQUICK_COMPILER_SKIPPED_RESOURCES += 你的JS所在,
例如:我的qwebchannel.js文件在resources.qrc下,那么代码如下:
QTQUICK_COMPILER_SKIPPED_RESOURCES += resources.qrc
可参照官网: http://doc.qt.io/qt-5/qtwebengine-deploying.html