ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

QtScrcpy 安装包制作指南:Windows Installer 与 macOS DMG 完整打包实战

QtScrcpy 安装包制作指南:Windows Installer 与 macOS DMG 完整打包实战 QtScrcpy 安装包制作指南Windows Installer 与 macOS DMG 完整打包实战【免费下载链接】QtScrcpyAndroid real-time display control software项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy编译能通过是一回事交到用户手里的是不是一个双击就能装的包是另一回事。QtScrcpy 的安装包制作本质就是把这句话从愿望变成流水线动作Windows 侧要把 adb、运行库、按键映射攒齐并封装成 InstallermacOS 侧要渲染出一个带拖拽安装界面的 DMG。整条链路全靠ci/目录里的脚本驱动下面把两条打包线从头到尾走一遍。工具链全景打包脚本一张表脚本 / 工具平台一句话职责ci/win/build_for_win.batWindows选架构、清目录CMake 生成 VS 工程并编译ci/win/publish_for_win.batWindows聚齐 adb/keymap/Qt 运行库瘦身产出绿色版ci/mac/build_for_mac.shmacOS按 arm64/x64 编译出 QtScrcpy.appci/mac/package_for_mac.shmacOS安装 dmgbuild 依赖并触发 DMG 打包ci/mac/package/package.pymacOS写出 DMG 配置调用 dmgbuild 生成 .dmgci/linux/build_for_linux.shLinuxCI 环境下的 CMake 编译ci/generate-version.py跨平台从 git tag 提取版本号写进 appversiondmgbuildpip 包macOS渲染带拖拽布局的 DMG 安装界面顺着这张表先走 Windows再走 macOS收尾看流水线如何接管版本号与架构切分。Windows Installer 打包全链路环境就绪MSVC 与 Qt 路径先对齐脚本只认两个环境变量ENV_QT_PATH必须提前指到 Qt 安装根目录ENV_VCVARSALL指向 VS 的 vcvarsall.bat。第二个命令行参数决定架构x86 与 x64 各有一条 Qt CMake 配置路径if /i %2x64 (set qt_cmake_path%ENV_QT_PATH%\msvc2019_64\lib\cmake\Qt5)跑完这段判断你会拿到按架构定好的qt_cmake_path以及配套的 Win32/x64 生成参数。开跑前脚本还会清场⚠️ 这是防止上次编译残留混进新产物的关键动作if exist %output_path% rmdir /q /s %output_path% md %temp_path%跑完 output 与 build_temp 都不复存在构建从白纸状态开始。CMake 编译构建两行命令出 exe生成阶段用 Visual Studio 17 2022 生成器、按架构指定 -A 平台参数构建阶段固定 8 线程并行cmake %cmake_params% ../.. cmake --build . --config %build_mode% -j8%cmake_params%展开即 -DCMAKE_PREFIX_PATH指向上一步的 Qt 路径、-DCMAKE_BUILD_TYPE、-G 与 -A。跑完在 output 目录下得到对应架构的 QtScrcpy.exe 与全套二进制。x86 和 x64 要各跑一遍产物分放 output\x86 与 output\x64发布脚本按架构取料。资源部署与体积瘦身windeployqt 之后做减法exe 只在自己机器上能跑。ci/win/publish_for_win.bat 把发布物料聚齐构建产物、third_party 里自带的 adb 与 scrcpy-server、keymap 按键映射、config 默认配置逐个 xcopy 进发布目录再交给 windeployqt——Qt 官方依赖部署工具——补齐 Qt 运行库xcopy %release_path% %publish_path% /E /Y windeployqt %publish_path%\QtScrcpy.exewindeployqt 会顺手把 vc_redist 运行库安装包也带进来脚本直接删掉它改为从 System32 拷入 vcruntime140.dll 等现成运行库用户装包时少一步。 体积上继续做减法iconengines、translations 整目录删除imageformats 只留 qjpeg 这类必需的qgif、qwebp 等一律剔除rmdir /s /q %publish_path%\translations del %publish_path%\imageformats\qgif.dll跑完发布目录就是一个双击能跑的绿色版。封装 Installer绿色版物料就位绿色版目录本身就是 Installer 的物料清单交给 Inno Setup 这类封装工具配置好安装路径与快捷方式产出的 Setup 包才配得上双击就装。⚠️ 发布前核对目录里 DLL 的位数与 exe 一致x86 与 x64 两份物料别混装。macOS DMG 制作全链路环境就绪CMake 多架构编译参数定架构这边同样靠ENV_QT_PATH但按 CPU 架构分两条线Intel 机x64走 clang_64 下的 Qt5Apple Siliconarm64走 macos 下的 Qt6qt_cmake_path$ENV_QT_PATH/macos/lib/cmake/Qt6 cmake_params-DCMAKE_PREFIX_PATH$qt_cmake_path -DCMAKE_OSX_ARCHITECTURES$cmake_archCMAKE_OSX_ARCHITECTURES就是架构总开关x86_64 或 arm64 二选一。跑完 cmake --buildbuild 目录下得到单架构的 QtScrcpy.app两种 Mac 都要覆盖就把两条线各跑一遍。开源分发默认不挂 Apple Developer ID 签名DMG 布局里因此随附了一份安装说明用户遇到隔离提示时照着处理即可。dmgbuild 配置窗口、背景与拖拽布局ci/mac/package/package.py 先把配置写成 dmg-settings.json再交给 dmgbuild 渲染。整个 info 字典里真正决定观感的是这几个键info { title: app_name, background: dmg_background_img, format: UDZO, compression-level: 9, window: {size: {width: 780, height: 480}}, contents: [app, /Applications, readme] }background 是开窗时铺底的图片window size 定开窗尺寸contents 把 app 放左、/Applications 软链放右——拖过去的安装动线就是这么画出来的。生成产物一条命令出 DMG打包入口 ci/mac/package_for_mac.sh 两步走先装依赖再跑打包脚本dmgbuild 据此渲染出成品pip install -r $script_path/package/requirements.txt python $script_path/package/package.py跑完 build/ 下得到 QtScrcpy.dmg窗口里是背景图、应用图标与 /Applications 拖拽目标✅ 动线完全贴合 macOS 用户的安装直觉。流水线与版本自动化版本号不手写ci/generate-version.py 用git describe取最近 tag剥掉 v 前缀写进 appversion——tag 打在哪安装包版本号就是哪。架构切换统一走 CMAKE_OSX_ARCHITECTURES / -A 参数Win 的 x86、x64 与 Mac 的 x64、arm64 各出一条构建线产物分目录互不干扰。linux/mac/win 三端脚本形态一致清目录 → cmake 配置 → -j8 并行构建挂进 GitHub Actions 或 GitLab CI 就是现成的 Qt 跨平台发布流水线成品上传为 artifact 供下载。排障速查❓windeployqt: command not found PATH 里缺 Qt 的 bin 目录 ✅export PATH$ENV_QT_PATH/clang_64/bin:$PATH按实际 Qt 子目录改重跑发布脚本❓ DMG 打开后背景图比例失调、图标错位 背景图分辨率与 780×480 窗口不匹配或 background 键路径指错 ✅ 换等比例背景图确认配置里的路径指向 dmg-background.jpg❓ CI 上编译慢、CPU 打满 -j 线程数与构建机核数不匹配 ✅ 本地保持 -j8CI 里改 -j$(nproc) 按实际资源放开一套脚本钉死三端出包动作发布不再靠手。引入 NSIS 或 WiX自动产出 Windows Installer集成 Sparkle实现 macOS 自动更新【免费下载链接】QtScrcpyAndroid real-time display control software项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表