本文将手把手教你如何使用Qt编译出iOS应用程序。

Qt是一个优秀的跨平台开发工具。我们利用Qt可以很方便地将一次编写的应用,多次编译到不同平台上,如Windows、Linux、MAC、Android、iOS、Windows Phone等。开发者只需掌握Qt的C++编程与界面制作方法,即可制作出包括手机APP在内的跨平台应用。

需要注意的是,Qt对Android与iOS、UWP等平台的支持目前还不是很完美。使用Qt来进行手机应用开发,制作出来的成品无论是界面、系统资源调用还是稳定性,肯定不如使用原生开发环境开发的要好。使用Qt来进行APP开发主要适合非软件专业的学生、非APP开发行业的开发人员(如电子设计爱好者)用来开发调试用的APP,相较重新学习一个甚至多个系统下的软件开发,这无疑是十分节省时间和精力的。

1.    搭建macOS环境

想要编译iOS软件,首先你需要一个macOS。如果你有Mac那就最好啦,否则的话,可以选择安装黑苹果或者使用虚拟机。笔者使用的是macOS S10.12懒人包+VMware12最新版虚拟机+unlocker208的方法(懒人包会减少不少麻烦)(macOS版本越新的话,需要越新的VMware和unlocker)。

2.    安装Xcode

在Mac App Store中搜索Xcode下载安装即可。XCode十分庞大,你可以先继续下面的步骤。

3.    安装Qt Creator for macOS

https://info.qt.io/zh-cn/download-qt-for-application-development

注册并点击“获取开源包”,再点击绿色“View All Downloads - Qt Online Installerfor macOS”链接下载最新版的Qt在线安装器。

4.    新建或打开一个Qt工程,在工程配置页面中勾选“iphonesimulator-clang-…”环境。

5.    点击左下角的锤子编译按钮,编译成功后即可关闭Qt Creator。

6.    编译完成后,在输出文件夹内会有一个“Info.plist”文件,使用Xcode打开。

删除如图所示Launch screen interface一行,否则APP开启时启动画面是一个特别难看的白底黑字画面。

7.    双击打开.xcodeproj工程文件,选中如图箭头所指工程,在右方可进行应用名称等配置,具体可百度。

8.    如图点击如图的“Use Asset Catalog”按钮可创建图标、启动画面图片库。

将制作好的不同分辨率的图标拖入相应的位置即可,启动画面同理。这样就不会有Qt内置的启动画面了。

9.    现在工程已经配置完毕了,我们可以开始编译软件。这需要你对软件进行签名。

如果你是Apple开发者,你可以绑定你的开发者账户,编译后直接发布ipa等,这就已经完成了iOS应用的生成。对于没有开发者账户(这并不是免费的)业余玩家,请继续往下看。

我们可以用Apple ID注册成为开发者,利用Xcode提供的真机测试功能将软件安装到设备上。具体操作过程很简单,只需按照提示完成就行。这种方法有安装设备数量的限制,且安装的软件只有7天的生命,但过期后可以重新编译下载。

10.  登录、绑定完成后,我们将Apple设备插入电脑(如果你选择了使用虚拟机,不要忘记在虚拟机设置中将插入的设备提供给虚拟机)。连接好设备后,点击菜单栏的“Product-Destination”,选中你的Apple设备。

之后编译目标将会变成你选择的设备,如下图。

11.  此时Xcode将会获取你的设备信息并联网下载一些资料,过程需要几分钟。等待适配完毕后,点击三角形运行按钮,将会进行程序的编译与生成,并自动安装到你的设备上。第一次安装运行需要你从设备的“设置-通用-描述文件”中选择信任开发者。至此,软件就可以在设备上运行了。

https://blog.csdn.net/weixin_37773766/article/details/80824248

利用Qt开发跨平台APP(二)(iOS,使用Qt5.9,很详细,有截图)的更多相关文章

  1. 利用Qt开发跨平台APP

    本文将手把手教你如何在Windows环境下,使用Qt编译出安卓应用程序. Qt是一个优秀的跨平台开发工具.我们利用Qt可以很方便地将一次编写的应用,多次编译到不同平台上,如Windows.Linux. ...

  2. 带你从零学ReactNative开发跨平台App开发(二)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

  3. 带你从零学ReactNative开发跨平台App开发[react native SqlLite 终极运用](十二)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

  4. 带你从零学ReactNative开发跨平台App开发(一)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

  5. 带你从零学ReactNative开发跨平台App开发(十一)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

  6. 带你从零学ReactNative开发跨平台App开发(九)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

  7. 带你从零学ReactNative开发跨平台App开发[expo 打包发布](八)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

  8. 带你从零学ReactNative开发跨平台App开发-[react native 仿boss直聘](十三)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

  9. 带你从零学ReactNative开发跨平台App开发(十)

    ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 带你从零学ReactNative开发跨平台App开发(二) 带你从零学ReactNative开发 ...

随机推荐

  1. 3d引擎列表

    免费引擎 Agar - 一个高级图形应用程序框架,用于2D和3D游戏. Allegro library - 基于 C/C++ 的游戏引擎,支持图形,声音,输入,游戏时钟,浮点,压缩文件以及GUI. A ...

  2. jquery日期插件datePicker

    index.html <!DOCTYPE html> <html lang="zh-cn"> <head> <meta http-equi ...

  3. 移植opencv到pcDuino

    OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Pytho ...

  4. Javascript 字符串替换

    <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...

  5. linux下更改vncserver的密码

    Linux下VNC配置多个桌面和修改密码 1:vncserver2:iptables -I INPUT -p tcp --dport 5901 -j ACCEPT   客户端方式3:iptables ...

  6. Python 入门(七)函数

    什么是函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = ...

  7. Ubuntu 12.04 部署 PostGIS 2.1

    首先,卸载掉原有的postgis和postgresql-9.1-postgis,不然你就用1.5版好了~ 1 sudo dpkg --purge postgis postgresql-9.1-post ...

  8. MQTT的学习研究(十一) IBM MQTT 简单发布订阅实例

    package com.etrip.push; import com.ibm.mqtt.MqttAdvancedCallback; import com.ibm.mqtt.MqttClient; im ...

  9. outline的兼容性及使用限制

    outline 和 border的区别: outline不占据文档空间,border占据文档空间. outline无法单独设置上下左右,只要设置outline,必须所有的边都设置:border可以设置 ...

  10. SNMP信息泄露漏洞

    SNMP协议简介 名称:SNMP(Simple Network Management Protocol)简单网络管理协议 端口:161 协议:UDP 用途:SNMP代理者以变量呈现管理资料.管理系统透 ...