Qt Mac 下发布使用了 QtWebEngine 的程序

1 篇文章 0 订阅

我们都知道在 mac 下发布 Qt 程序时, 需要拷贝 Qt 的 Frameworks 到 app 中. 这一步往往可使用 macdeployqt 这个 Qt 提供的程序实现. 当然, 也可以自己写个脚本, 把对应的 Qt Framework 拷贝过去.

在使用到 QtWebEngine 的程序中, 需要包含以下几个库: QtWebEngine, QtWebEngineCore, QtWebEngineWidgets, QtWebChannel. 除此之外, 还需要一个 QtWebEngineProcess 程序. 否则程序运行起来会报一个”找不到 QtWebEngineProcess” 的警告, 且功能异常.

这个 QtWebEngineProcess 是一个独立的程序, 在 win 下发布时, 只需要把这个 QtWebEngineProcess.exe 以及几个相关的 qtwebengine_resources_XX.pak 拷贝到 exe 同级目录下就可以了. 但是在 mac 下, 就不这么简单了. QtWebEngineProcess.app 在 QtWebEngineCore.framework/Versions/5/Helpers 目录下, 而这几个 pak 在 Resources 目录下.

我们当然可以手动把整个 QtWebEngineCore 拷贝到 you.app/Contents/Frameworks 目录下, 这样是可以运行的. 但是也引入了 QtWebEngineCore 中一些无用的文件, 我们可以做的更好.

以下是一个脚本用于实现这一过程:

#!/bin/bash

qt_dir=$1       # Qt SDK lib path
app_dir=$2      # your app path

mkdir -p "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/Versions/5"
cp -rf "$qt_dir/QtWebEngineCore.framework/Versions/5/Helpers" "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/Versions/5"
cp -rf "$qt_dir/QtWebEngineCore.framework/Versions/5/Resources" "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/Versions/5"
cp -f "$qt_dir/QtWebEngineCore.framework/Versions/5/QtWebEngineCore" "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/Versions/5"

ln -sf "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/Versions/5" "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/Versions/Current"
ln -sf "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/Versions/5/Helpers" "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/Helpers"
ln -sf "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/Versions/5/Resources" "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/Resources"
ln -sf "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/Versions/5/QtWebEngineCore" "$app_dir/Contents/Frameworks/QtWebEngineCore.framework/QtWebEngineCore"

关键点就是在拷贝了 Helpers 和 Resources 后, 需要创建一些软链接(mac 中叫做替身), 方便 QtWebEngineProcess.app 找到这些库.

以下是执行该脚本之后的目录结构:
QtWebEngineCore.framework 发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值