Qt 应用打包发布 #
发布概述 #
text
┌─────────────────────────────────────────────────────────────┐
│ Qt 应用发布流程 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 编译 Release 版本 │
│ │ │
│ ▼ │
│ 2. 部署 Qt 依赖库 │
│ │ │
│ ▼ │
│ 3. 打包应用资源 │
│ │ │
│ ▼ │
│ 4. 创建安装包 │
│ │ │
│ ▼ │
│ 5. 测试和分发 │
│ │
└─────────────────────────────────────────────────────────────┘
Windows 发布 #
使用 windeployqt #
bash
# 编译 Release 版本
qmake
make release
# 使用 windeployqt 部署依赖
cd release
windeployqt MyQtApp.exe
# 部署额外模块
windeployqt --quick --sql MyQtApp.exe
# 部署到指定目录
windeployqt --dir deploy MyQtApp.exe
创建安装包 #
nsis
; NSIS 安装脚本示例
!include "MUI2.nsh"
Name "MyQtApp"
OutFile "MyQtApp_Setup.exe"
InstallDir "$PROGRAMFILES\MyQtApp"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
Section "Install"
SetOutPath $INSTDIR
File /r "deploy\*.*"
CreateDirectory "$SMPROGRAMS\MyQtApp"
CreateShortCut "$SMPROGRAMS\MyQtApp\MyQtApp.lnk" "$INSTDIR\MyQtApp.exe"
WriteUninstaller "$INSTDIR\Uninstall.exe"
SectionEnd
Section "Uninstall"
RMDir /r "$INSTDIR"
RMDir /r "$SMPROGRAMS\MyQtApp"
SectionEnd
macOS 发布 #
创建应用包 #
bash
# 编译 Release 版本
qmake
make release
# 使用 macdeployqt
macdeployqt MyQtApp.app -dmg
# 指定 Qt 框架路径
macdeployqt MyQtApp.app -verbose=2 -qmldir=/path/to/qml
Info.plist 配置 #
xml
<?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>CFBundleName</key>
<string>MyQtApp</string>
<key>CFBundleDisplayName</key>
<string>My Qt App</string>
<key>CFBundleIdentifier</key>
<string>com.company.myqtapp</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleIconFile</key>
<string>AppIcon.icns</string>
<key>LSMinimumSystemVersion</key>
<string>10.14</string>
<key>NSHighResolutionCapable</key>
<true/>
</dict>
</plist>
Linux 发布 #
AppImage 打包 #
bash
# 安装 linuxdeploy
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
# 安装 Qt 插件
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
# 创建 AppImage
./linuxdeploy-x86_64.AppImage --appdir AppDir \
--executable ./MyQtApp \
--desktop-file myqtapp.desktop \
--icon-file myqtapp.png \
--plugin qt \
--output appimage
创建 .desktop 文件 #
text
[Desktop Entry]
Type=Application
Name=MyQtApp
Comment=My Qt Application
Exec=MyQtApp
Icon=myqtapp
Categories=Utility;
Terminal=false
通用配置 #
.pro 文件配置 #
qmake
# 版本信息
VERSION = 1.0.0
# 应用图标
win32: RC_ICONS = app.ico
macx: ICON = app.icns
# 应用名称
TARGET = MyQtApp
# Release 优化
CONFIG += release
CONFIG += optimize_full
# 定义版本宏
DEFINES += APP_VERSION=\\\"$$VERSION\\\"
下一步 #
现在你已经掌握了打包发布,接下来学习 移动端开发,了解 Qt 移动应用开发!
最后更新:2026-03-29