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目录下边,如下图
     
    image.png

    2.将/usr/local/Cellar/qt/5.11.2/lib目录下所有framework复制替换到 你的App/Contents/Frameworks目录下,如下图
     
    image.png

注:其实不必全部复制,只复制你App所有跟Qt安装目录的framework相同名字的即可,已实测可行,但是会发现字体样式会凌乱,像3D那些framework明显没用到的可以不复制,全复制只是担心会出现一些问题而已。


  • release 模式下JavaScript交互失效
    在.pro文件添加 QTQUICK_COMPILER_SKIPPED_RESOURCES += 你的JS所在,
    例如:我的qwebchannel.js文件在resources.qrc下,那么代码如下:
QTQUICK_COMPILER_SKIPPED_RESOURCES += resources.qrc
 
image.png


可参照官网: http://doc.qt.io/qt-5/qtwebengine-deploying.html

原文地址:https://www.cnblogs.com/kuangke/p/14702468.html