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

使用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.kler.cn/a/385009.html

相关文章:

  • 文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现
  • 深度学习:自注意力机制(Self-attention)详解
  • 网络技术---网络通信概述
  • 一个小程序如何对接多个收款账户?
  • VMware没有卸载干净,安装后ping不通
  • java高频基础选择题20道(一)
  • PHP实现全站静态化
  • C++学习笔记----10、模块、头文件及各种主题(四)---- 头文件
  • 论文阅读《Structure-from-Motion Revisited》
  • Excel 无法打开文件
  • 【计网】实现reactor反应堆模型 --- 框架搭建
  • 【论文复现】基于深度学习的手势识别算法
  • 【AI写作宝-注册安全分析报告-无验证方式导致安全隐患】
  • 单细胞 RNA 测序分析的当前最佳实践:教程-文献精读80
  • Elasticsearch可视化工具Elasticvue插件用法
  • JavaWeb项目-----博客系统
  • 如何修改WordPress经典编辑器的默认高度?
  • Prompt 工程
  • 漫漫数学之旅038
  • 贪心算法习题其四【力扣】【算法学习day.21】
  • 推荐一款PowerPoint转Flash工具:iSpring Suite
  • git clone,用https还是ssh
  • Go语言的常用内置函数
  • Webserver(4.9)本地套接字的通信
  • Mysql常用语法一篇文章速成
  • TCP/IP协议介绍