Qt之MAC版打包步骤

发布于:2025-06-24 ⋅ 阅读:(17) ⋅ 点赞:(0)

MAC版打包步骤
假设xx.app包编译路径为

/Users/mac/Qt/xx/build-QRfidPro-Desktop_Qt_5_15_2_clang_64bit-MinSizeRel/build

使用dylibbundler修复程序中除QT以外的第三方库, 如果没有dylibbundler, 使用brew安装, 注意使用x86架构的brew而不是arm架构, 如何在arm架构机器上安装x86架构的brew请访问互联网。修复过程中可能需要是输入libLibQRfidPro.dylib所在目录。

dylibbundler -od -b -ns -x ./QRfidPro.app/Contents/MacOS/QRfidPro -d ./QRfidPro.app/Contents/libs

修复之后可以使用命令检查依赖库路径是否正确

mac@192 build % otool -L ./QTestApp.app/Contents/MacOS/QTestApp
mac@192 build % otool -L ./QTestApp.app/Contents/libs/libLibQTestApp.dylib

使用QT提供的macdeployqt安装QT框架至程序包, 注意要用程序编译时所用的qt附带的macdeployqt工具, 可能需要cd进入qt安装目录, 然后显式指定./macdeployqt而不是macdeployqt

cd /Users/mac/Qt/5.15.2/clang_64/bin
mac@192 bin % ./macdeployqt /Users/mac/QtProjects/QTestApp/build-QTestApp-Desktop_Qt_5_15_2_clang_64bit-MinSizeRel/build/QTestApp.app

检查二进制文件RPATH表

otool -l ./QTestApp.app/Contents/MacOS/QTestApp | grep RPATH -A2
添加QT框架目录到二进制文件RPATH表

install_name_tool -add_rpath @executable_path/../Frameworks ./QTestApp.app/Contents/MacOS/QTestAppe

MAC版签名与公正
使用APPLE开发者账户登录并进入网址下载证书, 然后安装到本地计算机上

https://developer.apple.com/account/resources/certificates/download/

生成公证配置,每台电脑仅需要运行一次

xcrun notarytool store-credentials “QTestAppApp” --apple-id “00000000000@163.com” --team-id “Gw3FCEZ810” --password “---
为应用程序进行签名(不是程序包),注意密码和账号

codesign -f -o runtime --timestamp -s "Developer ID Application: ssx Technology Co., Ltd. (Gw3FCEZ810)" -v ./QTestApp.app/Contents/MacOS/QTestApp

为依赖库进行签名 注意密码和账号

codesign -f --timestamp -s "Developer ID Application: ssx  Technology Co., Ltd. (Gw3FCEZ810)" -v ./QTestApp.app/Contents/libs/*.dylib

使用磁盘工具将app打包为dmg

磁盘工具》 基于文件夹建立DMG印象
将dmg包上传至APPLE进行公证, 这个需要一点时间

xcrun notarytool submit ./QTestApp.dmg --keychain-profile "QTestAppApp" --wait

如果出现错误, 使用命令查询错误原因并修复, 其中id部分为上一个命令提供

xcrun notarytool log "6c6616b2-1eb3-6a66-603d-6622c6b66161" --keychain-profile "QTestAppApp"

网站公告

今日签到

点亮在社区的每一天
去签到