首页 > 代码库 > Qt Mac 下软件Release 发布dmg
Qt Mac 下软件Release 发布dmg
1.首先当然是用Qt Creator,编译一个Release版本的软件
注意到编译出来的大小非常小,才420KB,因为一些类库还没包含进去的原因。现在还只能在你本地运行,拷贝到其他Mac电脑就不能运行了。
2.生成最终版的app
Qt安装目录的bin目录下有个工具叫macdeployqt就是供程序打包用的,使用非常简单,切换到该bin目录,执行
./macdeployqt yourappname.app 就可以了。就会自动在yourappname.app所在目录重新生成一个新的比较大的app了。
关于一些使用了第三方类库的,我还没研究过如何打包。
3.给app加上icon
右击你的app,选择显示包内容。里面有个叫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>NSPrincipalClass</key> <string>NSApplication</string> <key>CFBundleIconFile</key> <string>icon.icns</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleGetInfoString</key> <string>Created by Qt/QMake</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleExecutable</key> <string>TextureUnpacker</string> <key>CFBundleIdentifier</key> <string>@BUNDLEIDENTIFIER@</string> <key>NOTE</key> <string>This file was generated by Qt/QMake.</string> </dict> </plist>
就是CFBundleIconFile key 对于的值。
当然做完这步发现app的图标还是默认的,没有更改成我们想要的图标。这个时候,右击app,选择显示信息(GetInfo),然后把icns文件拖到左上角的图标位置。
4.生成dmg文件
app的告一段落,我们来看下如何生成dmg文件。
通过 Disk Utility 创建一个空白的dmg镜像, File –> New –> Blank Disk Image
我这里大小为100MB,最终制作出来的dmg文件会自动裁剪掉空白的。
双击“TextureUnpacker” 出来的空白窗口,一切的东西都在这里布局了, 请准备好一背景图片。以下是我打包用的图片:
在空白处右键(或菜单的方式也可以),选择”Show View Options”,把background选为Picture,把需要作为背景的图片拖进来。
将上面我们制作好的app拽到“TextureUnpacker”里面,再做一个Applications快捷方式(右键–>Make Alias)
最终效果图如下:
将做好的dmg,转换一下就完成了,在Disk Utility 中如果没有的话,请将它拽回去就可以了,然后右键TextureUnpacker.dmg–>Convert”TextureUnpacker”
再给dmg增加icon,跟上面app的icon一样,右击get info,然后拖icns到icon的位置。
最后双击制作要的dmg文件,看下是否是我们期望的(忽略掉那些隐藏文件):
看到自己做的软件出现在Application是不是很酷呢?
http://www.waitingfy.com/archives/1242
http://www.waitingfy.com/archives/1242
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。