Qt在macOS(含第三方库)应用程序打包发布流程
若不含第三方库只需要执行步骤一即可,打包相关命令均在release工程目录下进行,设置环境变量除外。
1. 生成安装包
macdeployqt utilTest.app -dmg // 打包release版的app
在qt生成的release工程目录下打开终端运行上述命令
2. 查看依赖的动态库及其路径
otool -L utilTest.app/Contents/MacOS/utilTest
libutilLib.1.0.0.dylib为第三方库,需要修改路径,否则程序运行会报错
3. 修改依赖的动态库的路径
右键生成的utilTest.app,点击“显示包内容”,在Contents/Frameworks目录中创建utilLib目录,将第三方可文件拷贝放到该目录下
install_name_tool -change "libutilLib.1.0.0.dylib" "@rpath/utilLib/libutilLib.1.0.0.dylib" utilTest.app/Contents/MacOS/utilTest // 记得在Contents/Frameworks目录中创建一个utilLib目录
注意:若出现command not found: macdeployqt,有两种解决办法,步骤4与步骤5任选其一即可。
4. 输入macdeployqt的完整路径
填写macdeployqt的完整路径,其在qt安装目录下,如博主电脑中的路径. 是:/Users/air/Qt5.14.2/5.14.2/clang_64/bin
/Users/air/Qt5.14.2/5.14.2/clang_64/bin/macdeployqt ./utilTest.app
5. 设置环境变量
打开终端需要打开配置文件:
vim .bash_profile
如果bash_profile文件不存在,就会自动创建,然后需要输入以下内容:
export QTDIR=/Users/用户名/Qt5.14.2 #Qt的安装目录
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib #添加Qt库路径
export PATH=$PATH:$QTDIR/bin #添加指令路径
export PATH="/Users/用户名/Qt5.14.2/5.14.2/clang_64/bin:$PATH"#添加工具路径
然后保存退出,然后输入source ~/.bash_profile使得这个文件生效。
然后退出终端重新运行,输入:
echo $PATH
然后就能看到环境变量有Qt的路径:
/Users/用户名/Qt5.14.2/5.14.2/clang_64/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/用户名/Qt5.6.1/bin
然后输入qmake -v就能看到当前Qt的版本:
QMake version 3.0
Using Qt version 5.14.2 in /Users/用户名/Qt5.14.2/5.14.2/clang_64/lib
这样就可以使用qmake命令了