首页 / 资讯中心 / 文章详情

QtScrcpy 打包指南:从源码到 Windows Installer 与 macOS DMG

QtScrcpy 打包指南:从源码到 Windows Installer 与 macOS DMG ★ FEATURED ARTICLE
QtScrcpy 打包指南从源码到 Windows Installer 与 macOS DMG【免费下载链接】QtScrcpyAndroid real-time display control software项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpyQtScrcpy 编译完成后还得变成能交付用户的安装产物。本文覆盖 Windows 与 macOS 两个打包目标前者产出绿色版目录并封装 Windows Installer后者生成带拖拽安装界面的 macOS DMG最后把版本号与多架构构建接入 CI。打包前检查工具链与架构组合两侧平台的工具链、Qt 版本和架构参数都不同。动手前对着下表核对一遍避免编译到一半才发现ENV_QT_PATH指错了 Qt。项目WindowsmacOS构建工具VS 2022 CMakeMSVCXcode 命令行工具 CMakeQt 路径ENV_QT_PATHQt 5msvc2019/msvc2019_64x64 用clang_64Qt 5arm64 用macosQt 6环境变量ENV_QT_PATH、ENV_VCVARSALLvcvarsall.bat 路径ENV_QT_PATH架构选项x86 →Win32x64 →x64x86_64/arm64CMAKE_OSX_ARCHITECTURES额外依赖无pip install安装 dmgbuild 等依赖构建脚本见 ci/win/build_for_win.bat参数依次为编译模式和架构。Windows Installer 三步走第一步清理目录后生成工程并并行编译脚本先删掉output与build_temp避免旧产物污染再生成 VS 工程并启动 8 路并行编译set qt_cmake_path%ENV_QT_PATH%\msvc2019_64\lib\cmake\Qt5 REM x64 用 msvc2019_64 cmake %cmake_params% ../.. cmake --build . --config RelWithDebInfo -j8 REM 8 路并行编译产物落在output\x64\RelWithDebInfo下。第二步把 ADB、按键映射等运行时资源整合进发布目录发布脚本 ci/win/publish_for_win.bat 负责复制scrcpy-server jar、Windows 版 ADB、keymap\与config\目录最后跑windeployqt补齐 Qt 运行时xcopy %adb_path% %publish_path% /Y REM 复制 ADB 工具 xcopy %keymap_path% %publish_path%keymap\ /E /Y REM 按键映射配置 windeployqt %publish_path%\QtScrcpy.exe REM 部署 Qt 依赖执行前记得先call vcvarsall.bat x64注册 MSVC 环境否则 windeployqt 找不到运行时组件。第三步清理冗余 Qt 依赖给安装包瘦身windeployqt 是宁多勿少的用不上的插件要手动删rmdir /s/q %publish_path%\iconengines rmdir /s/q %publish_path%\translations del %publish_path%\imageformats\qgif.dll REM 截图功能需要保留 qjpeg.dllvc_redist.x*.exe也会被删掉脚本改为直接从系统目录拷贝四个 vcruntime DLL。至此你得到一个绿色目录可以交给 Inno Setup 或 NSIS 封装成 Windows Installer。生成带拖拽引导的 DMG 界面编译出 QtScrcpy.appci/mac/build_for_mac.sh 按第二个参数选 Qtarm64 走 Qt 6x64 走 Qt 5cmake -DCMAKE_PREFIX_PATH$qt_cmake_path -DCMAKE_BUILD_TYPERelWithDebInfo \ -DCMAKE_OSX_ARCHITECTURESarm64 ../.. # 架构参数决定产物 cmake --build . --config RelWithDebInfo -j8需要 Universal Binary 时把-DCMAKE_OSX_ARCHITECTURES写成一个字符串里拼接多个架构即可。用 dmgbuild 配置窗口、背景图与拖拽布局打包入口脚本先执行pip install -r package/requirements.txt再调用 ci/mac/package/package.py 里的dmgbuild.build_dmg。核心配置决定了你打开 DMG 后看到的一切info { background: dmg_background_img, # 拖拽界面背景 window: {size: {width: 780, height: 480}}, contents: [ {x: 223, type: file, path: app_path}, # 应用本体 {x: 550, type: link, path: /Applications}]} # 拖拽目标app 图标放在 (223, 227)Applications 快捷方式放在 (550, 227)用户一眼就会把前者拖到后者完成安装README 放在底部作为说明。格式选 UDZO、压缩级别 9产物体积最小。打开产物验证安装体验生成后双击 DMG 检查三件事背景图与 780x480 窗口是否对齐、图标位置是否正确、拖入 /Applications 后能否正常启动。被 Gatekeeper 拦截时右键打开或为签名身份补齐公证即可。接入 CI 自动化发版三个关键点点到为止版本号ci/generate-version.py 用git rev-list --tags --max-count1找到最新 tag 的 commit再git describe --tags解析出 tag去掉开头v后写入QtScrcpy/appversion。你只需打新 tag。多架构Windows 分别跑 x86 与 x64 脚本macOS 分别编 arm64 与 x64。产物把output/与 DMG 上传为 CI artifact再挂到 Release。并行数脚本里写死-j8CI 机器核多时改成满核能明显缩短编译时间。避坑速查表现象解法windeployqt: command not found把 Qt 的bin加进 PATHWindows 用msvc2019_64\binmacOS 用clang_64/binwindeployqt 后缺 MSVC 运行时先call vcvarsall.bat注册环境windeployqt 才会处理 vcruntime 拷贝macOS x64 编译报找不到 Qtx64 分支固定读clang_64/lib/cmake/Qt5确认ENV_QT_PATH指向 Qt 5 目录DMG 背景图模糊、图标错位背景图按 780x480 窗口比例准备并放在ci/mac/package/下清理插件后截图功能失效imageformats\qjpeg.dll必须保留只删真正用不到的格式插件收尾两个平台一套思路Windows 走清理编译 → 资源整合 → 冗余清理macOS 走架构选对 Qt → dmgbuild 摆好窗口。下一步可以试试用 NSIS 或 WiX Toolset 产出正式 Windows Installer或用 Docker 容器固化构建环境让打包结果在任意机器上可复现。【免费下载链接】QtScrcpyAndroid real-time display control software项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站