当前位置: 首页 > news >正文

使用QtWebEngine的Mac应用如何发布App Store

前言

因为QtWebEngine时第三方包,苹果并不直接支持进行App Store上签名和发布,所以构建和发布一个基于使用QtWebEngine的应用程序并不容易,这里我们对Qt 5.8稍微做一些修改,以便让我们的基于QtWeb引擎的应用程序并让签名能够得到苹果的许可。

QtWebEngine提供了C++和Qml的接口,可以在Widget/Qml中渲染HTML、XHTML、SVG,也支持CSS样式表和JavaScript脚本。

QtWebEngine的架构图如下

基于Chromium封装了一个WebEngineCore模块,在此之上,WebEngine Widgets模块专门用于Widget项目,WebEngine 模块用于Qml项目,WebEngineProcess则是一个单独的进程,用来渲染页面、运行js脚本。Web在单独的进程里,我们开发的时候知道这一点就好了,不需要额外关注,只要在发布的时候,带上QTDIR目录下的可执行程序QtWebEngineProcess即可。

WebEngine的平台要求

首先一条是:不支持静态编译 (因为依赖的chromium、chromium本身的依赖库 不能静态编译)接下来再看看各平台的要求和限制:

Windows

编译器要 Visual Studio 2017 version 15.8 以上
系统环境要 Windows 10 SDK
默认只支持X64版本,如果要x86版本,要自己编译qt源码。

MacOS

  • MacOS 10.12以上
  • XCode 8.3.3以上
  • MacOS 10.12以上 SDK

不支持32-bit

不兼容 Mac App Store (chromium使用了私有api,App Sandbox和chromium Sandbox优先级问题)

Linux

编译器要 clang, 或者 gcc 5以上
需要pkg-config来探测依赖库,dbus-1和 fontconfig是必须的。
如果配置了xcb,还要额外配置相关库。

WebView

Qt还提供了一个WebView组件,可以用来将Web内容嵌入到Qml程序中。(这个没有提供Widget的接口)
WebView组件的实现,使用了平台原生api,在移动端意义重大,特别是在ios平台,使用原生的web view,这样就能兼容App Store了。

第一、修改WebEngine三方包

下面我们开始解决如何使用3rd Party Mac Developer Application进行签名的全过程,这样的应用就可以发布App Store。

从理论上讲,QtWebEngine自Qt5.7以来只需重建即可与Apple Mac Store兼容,但由于Chromium库代码和Apple Mac Store规则的变化,即使对于Qt5.9 LTS版本来说,重建目前也是不够的。

我们使用Qt 5.8是因为我们想保持对macOS 10.9的支持,我们还没有用Qt 5.9 LTS进行测试。

首先需要安装Qt源代码,这可以使用MainenanceTool应用程序完成。

第二、Entitlements权限

您需要一个包含以下内容的权限文件(除了主应用程序之一)来签署QtWebEngineProcess应用程序,格式如下:


http://www.mrgr.cn/news/65842.html

相关文章:

  • 【Android】使用productFlavors构建多个变体
  • OceanBase V4.3.3,首个面向实时分析场景的GA版本发布
  • 基于SpringBoot+微信小程序+协同过滤算法+二维码订单位置跟踪的农产品销售平台-新
  • 回归预测 | MATLAB实现基于RF-Adaboost随机森林结合AdaBoost多输入单输出回归预测
  • golang gin ShouldBind的介绍和使用
  • Ubuntu学习笔记 - Day2
  • 文件操作和 IO(二):文件内容操作 => 流对象
  • 小北的字节跳动青训营与LangChain实战课:深入解析模型I/O与提示模板(持续更新中~~~)
  • Java 入门
  • DFS求解迷宫最长移动路线
  • 助力风力发电风机设备智能化巡检,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建无人机巡检场景下风机叶片缺陷问题智能化检测预警模型
  • Java基础06(代码运行时的内存图)
  • 基于matlab的图像形状与分类的方法比较
  • Windows基础2(病毒编写)
  • WordPress站点网站名称、logo设置
  • C语言 | Leetcode C语言题解之第538题把二叉搜索树转换为累加树
  • 科研绘图系列:R语言圆堆积图(circle stacked plot)
  • Nginx线程模型
  • 【AIGC】如何通过ChatGPT轻松打造个性化GPTs应用
  • 【数据结构- 合法括号字符串】力扣1190. 反转每对括号间的子串
  • 代码训练营 day55|卡码网98
  • Linux:网络协议socket
  • 高频面试题基本总结(含笔试高频算法整理)回顾44
  • 从最小作用量原理推导牛顿三大定律
  • 简单题:环状 DNA 序列的最小表示法| 豆包MarsCode AI刷题
  • PGMP练-DAY16