欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Qt在Mac环境下制作dmg安装包

程序员文章站 2022-05-22 13:07:56
...

1,编译软件的Release版本
开发完Qt 项目后,我们需要将项目进行打包。首先,编译一个Release版本号的软件,此时编译出来的包大小非常小,这是由于一些类库还没打包进去的原因,还处于开发环境。

2,生成app文件
生成app文件需要借助macdeployqt工具,该工具位于Qt安装文件夹的bin文件目录下,如下图所示。

Qt在Mac环境下制作dmg安装包
macdeployqt使用非常简单,切换到该bin目录下,然后执行./macdeployqt appname.app 即可。例如:

./macdeployqt  /Users/bilibili/qt/build-downloader-Desktop_Qt_5_12_6_clang_64bit-Release/downloader.appmacdeployqt

执行完命令后,就会在appname.app所在文件夹下生成一个新的比較大的app。

3,给app添加icon
开发上一步生成的app,然后右击app,选择显示包内容。
Qt在Mac环境下制作dmg安装包
里面有个叫info.plist的文件,里面记录了非常多这个软件的信息,icon的信息也记录在这里。首先把你制作好的图标icns后缀的文件复制到Resources文件夹下。关于icns制作,可以查看《Qt Mac 下软件 icns图标制作》,然后编辑Info.plist文件,加上图标信息。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleExecutable</key>
	<string>downloader</string>
	<key>CFBundleGetInfoString</key>
	<string>Created by Qt/QMake</string>
	<key>CFBundleIconFile</key>
	<string>bilibili.icns</string>
	<key>CFBundleIdentifier</key>
	<string>com.yourcompany.downloader</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>LSMinimumSystemVersion</key>
	<string>10.12</string>
	<key>NOTE</key>
	<string>This file was generated by Qt/QMake.</string>
	<key>NSPrincipalClass</key>
	<string>NSApplication</string>
	<key>NSSupportsAutomaticGraphicsSwitching</key>
	<true/>
</dict>
</plist>

其中,CFBundleIconFile 对应的值就是图标的名称。当然,做完这步发现app的图标还是默认的,没有更改成我们想要的图标。此时右击app,选择显示信息(GetInfo),然后把icns文件拖到左上角的图标位置。

Qt在Mac环境下制作dmg安装包

4,生成dmg安装包

接下来,我们看一下怎么通过 Disk Utility 生成dmg安装包。打开finder-应用程序-实用工具-磁盘工具,然后创建一个空白的dmg镜像,如下图。
Qt在Mac环境下制作dmg安装包系统默认会创建一个大小为100MB的dmg镜像,最终制作出来的dmg文件会自己主动裁剪掉空白的。然后,右击这个空白的dmg镜像,会打开一个空白的窗体。
Qt在Mac环境下制作dmg安装包
然后在dmg镜像程序的空白处右击,选择【查看显示选项】,然后选择图片,并将准备好的图片拖到方框里面,如下图。
Qt在Mac环境下制作dmg安装包
将上面制作好的app拽到空白镜像dmg里面,再做一个Applications快捷方式(右键–>Make Alias),将做好的dmg,转换一下就完毕了。

相关标签: 杂文