记录下mac下 qt程序的打包
生成app文件
首先在cmake中加入 "MACOSX_BUNDLE",生成app文件,
如果需要图标,则右键app文件,显示简介,然后复制粘贴图标,图标就设置好了 ,不需要图标的话跳过
- 设置cmake
add_executable(
${PROJECT_NAME}
MACOSX_BUNDLE //加入这句话
main.cpp)
- 设置图标
接下来开始打包:
- 方式一: 启动终端 ,输入以下命令
cd /Users/Qt5.12.1/5.12.1/clang_64/bin ./macdeployqt /Users/bin/unix/Release/test.app install_name_tool -change "/usr/lib/libSystem.B.dylib" "@executable_path/../Frameworks/libSystem.B.dylib" /Users/bin/unix/Release/test.app/Contents/MacOS/test install_name_tool -change "/usr/lib/libc++.1.dylib" "@executable_path/../Frameworks/libc++.1.dylib" /Users/bin/unix/Release/test.app/Contents/MacOS/test
此时app文件中的内容已经准备好, 然后将其放到一个文件夹A中, 在应用程序中找到磁盘工具->文件->新建影像->基于文件夹新建影像,选中文件夹A,然后选择储存路径,等待打包结束得到 dmg文件
- 方式二: 启动终端 ,输入以下命令 ,直接得到dmg文件
cd /Users/Qt5.12.1/5.12.1/clang_64/bin ./macdeployqt /Users/bin/unix/Release/test.app -dmg
如果用到了qml,则
cd /Users/Qt5.12.1/5.12.1/clang_64/bin ./macdeployqt /Users/bin/unix/Release/test.app -dmg -qmldir=/Users/Qt5.12.1/5.12.1/clang_64/qml
- 方式三: 将第二种方式的内容写进脚本,以后每次打包只需要运行下脚本即可 .内容如下,要注意文本的打开方式, 我用qtcreator 打开编辑,脚本运行不了.
- 如果不需要设置软件图标, 那么打包到此结束了,如果有图标,接着往下看
首先用第二种方式打包成功一次(带图标), 然后打开打包好的文件,选中app, 右键点击,显示包内容,找到这个文件"Icon?"
然后准备一个文件夹,将脚本文件放入,"Icon?" 文件放入
脚本内容如下,第二行就是"Icon?"的路径,$1 代表命令行输入的参数
然后在命令行输入以下内容并运行,就打包好了:
脚本路径 + 空格 + app文件路径 ,如下:
/Users/Pictures/test/dmgpack.sh /Users/test/test.app
打包后如下