Skip to content

Commit d6ad018

Browse files
committed
[升级Qt版本至6.9.2并重构跨平台打包脚本]: 更新项目依赖的Qt版本至6.9.2,同时重构macOS和Windows平台的构建配置,新增通用SFTP上传脚本支持多平台部署
-依赖升级: 将Windows/macOS/Linux平台的Qt依赖版本从6.9.1统一升级至6.9.2 -脚本重构: 删除macOS专用package.py,新增通用package.py支持Windows/macOS(x86_64/aarch64)/Ubuntu(x86_64/aarch64)多平台SFTP上传 -配置更新: 同步更新GitHub Actions工作流、VSCode配置和CMake构建脚本中的Qt版本路径 -部署优化: 为macOS打包脚本增加架构区分支持,补充各平台部署校验命令说明
1 parent c3173d0 commit d6ad018

8 files changed

Lines changed: 140 additions & 51 deletions

File tree

.github/actions/install-dependencies/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ inputs:
99
qt_ver:
1010
description: 'qt version'
1111
required: false
12-
default: '6.9.1'
12+
default: '6.9.2'
1313
type: string
1414

1515
runs:

.vscode/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
},
55
"cmake.generator": "Ninja",
66
"cmake.environment": {
7-
"PATH": "C:\\Qt\\6.9.1\\msvc2022_64\\bin;${env:PATH};"
7+
"PATH": "C:\\Qt\\6.9.2\\msvc2022_64\\bin;${env:PATH};"
88
}
99
}

cmake/qt.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
if(CMAKE_HOST_WIN32)
2-
list(APPEND CMAKE_PREFIX_PATH "C:\\Qt\\6.9.1\\msvc2022_64")
2+
list(APPEND CMAKE_PREFIX_PATH "C:\\Qt\\6.9.2\\msvc2022_64")
33
elseif(CMAKE_HOST_APPLE)
44

55
elseif(CMAKE_HOST_LINUX)
6-
list(APPEND CMAKE_PREFIX_PATH "/opt/Qt/6.9.1/gcc_64")
6+
list(APPEND CMAKE_PREFIX_PATH "/opt/Qt/6.9.2/gcc_64")
77
endif()
88

99
add_definitions(-DQT_DEPRECATED_WARNINGS

packaging/macos/build.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
build_list = [
77
{
8-
"qmake": r"/Users/runner/Qt/6.9.1/macos/bin/qmake",
8+
"qmake": r"/Users/runner/Qt/6.9.2/macos/bin/qmake",
99
"qmake_params": r'"CONFIG+=qtquickcompiler"',
1010
"make": r"make",
1111
"project": r"/Users/runner/code/Qt-App/Qt-App.pro",

packaging/macos/package.py

Lines changed: 0 additions & 42 deletions
This file was deleted.

packaging/macos/package.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ project_root=$PWD
88
echo "Project root: ${project_root}"
99

1010
echo "Start compiling..."
11-
qmake="/Users/runner/Qt/6.9.1/macos/bin/qmake"
11+
qmake="/Users/runner/Qt/6.9.2/macos/bin/qmake"
1212
build_dir="${project_root}/build/Desktop_Qt_6_8_1_macosbit-Release"
1313

1414
rm -rf ${build_dir}
@@ -29,7 +29,7 @@ cp -af -v ${project_root}/bin-64/Release/Qt-App.app ${packet_dir}/
2929
delete_file_or_dir "${release_dir}/Qt-App.app"
3030

3131
# deploy Qt-App
32-
macdeployqt="/Users/fxy/Qt/6.9.1/macos/bin/macdeployqt"
32+
macdeployqt="/Users/fxy/Qt/6.9.2/macos/bin/macdeployqt"
3333
${macdeployqt} ${packet_dir}/Qt-App.app -always-overwrite
3434
cp -af -v ${packet_dir}/Qt-App.app ${release_dir}/
3535

@@ -94,5 +94,5 @@ notarize_app "${out_dmg_path}"
9494

9595
source ${project_root}/packaging/activate_venv.sh
9696
cd "$(dirname "$0")"
97-
python ./package.py
97+
python ${project_root}/packaging/package.py macos_aarch64
9898
deactivate

packaging/package.py

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# -*- coding: utf-8 -*-
2+
"""
3+
通用 SFTP 上传脚本
4+
支持平台:windows_x86、macos_x86_64、macos_aarch64、ubuntu_x86_64、ubuntu_aarch64
5+
用法:
6+
python upload.py windows_x86
7+
python upload.py macos_x86_64
8+
...
9+
"""
10+
11+
import os
12+
import time
13+
import argparse
14+
15+
import utils
16+
17+
# -------------------- 配置区 --------------------
18+
APP_NAME = "Qt-App"
19+
VERSION = "0.0.1"
20+
BUILD_DATE = time.strftime("%Y%m%d", time.localtime())
21+
22+
# 本地 releases 目录
23+
RELEASES_PATH = os.path.join(os.path.dirname(__file__), "releases")
24+
25+
# 远端公共根目录
26+
REMOTE_ROOT = "/mnt/data/homes/admin/packages/qt-app"
27+
28+
# 各平台配置
29+
PLATFORMS = {
30+
"windows_x86": {
31+
"src_file": f"{APP_NAME}_installer.exe",
32+
"dst_tpl": f"{APP_NAME}_{VERSION}_{BUILD_DATE}_x86.exe",
33+
"remote": f"{REMOTE_ROOT}/windows",
34+
},
35+
"macos_x86_64": {
36+
"src_file": f"{APP_NAME}.dmg",
37+
"dst_tpl": f"{APP_NAME}_{VERSION}_{BUILD_DATE}_x86_64.dmg",
38+
"remote": f"{REMOTE_ROOT}/macos/x86_64",
39+
},
40+
"macos_aarch64": {
41+
"src_file": f"{APP_NAME}.dmg",
42+
"dst_tpl": f"{APP_NAME}_{VERSION}_{BUILD_DATE}_aarch64.dmg",
43+
"remote": f"{REMOTE_ROOT}/macos/aarch64",
44+
},
45+
"ubuntu_x86_64": {
46+
"src_file": f"{APP_NAME}.deb",
47+
"dst_tpl": f"{APP_NAME}_{VERSION}_{BUILD_DATE}_x86_64.deb",
48+
"remote": f"{REMOTE_ROOT}/ubuntu/x86_64",
49+
},
50+
"ubuntu_aarch64": {
51+
"src_file": f"{APP_NAME}.deb",
52+
"dst_tpl": f"{APP_NAME}_{VERSION}_{BUILD_DATE}_aarch64.deb",
53+
"remote": f"{REMOTE_ROOT}/ubuntu/aarch64",
54+
},
55+
}
56+
57+
# SFTP 连接信息
58+
SFTP_SERVER = "192.168.1.111"
59+
SFTP_PORT = 22
60+
SFTP_USER = "root"
61+
SFTP_PWD = "123456"
62+
# -------------------- 逻辑区 --------------------
63+
64+
65+
def upload_platform(platform_key: str) -> None:
66+
if platform_key not in PLATFORMS:
67+
raise ValueError(f"未知的 platform_key: {platform_key}")
68+
69+
cfg = PLATFORMS[platform_key]
70+
71+
src_path = os.path.join(RELEASES_PATH, cfg["src_file"])
72+
dst_name = cfg["dst_tpl"]
73+
dst_path = os.path.join(RELEASES_PATH, dst_name)
74+
75+
# 若目标文件已存在,先删除(utils.remove 内部已做存在性检查)
76+
utils.remove(dst_path)
77+
# 重命名
78+
os.rename(src_path, dst_path)
79+
80+
# 生成 update.json
81+
json_path = os.path.join(RELEASES_PATH, "update.json")
82+
utils.generate_json(VERSION, dst_path, dst_name, json_path)
83+
84+
# 上传主安装包
85+
utils.sftp_upload_file(
86+
SFTP_SERVER,
87+
SFTP_PORT,
88+
SFTP_USER,
89+
SFTP_PWD,
90+
dst_path,
91+
f"{cfg['remote']}/{dst_name}",
92+
)
93+
94+
# 上传 update.json
95+
utils.sftp_upload_file(
96+
SFTP_SERVER,
97+
SFTP_PORT,
98+
SFTP_USER,
99+
SFTP_PWD,
100+
json_path,
101+
f"{cfg['remote']}/update.json",
102+
)
103+
104+
print(f"[{platform_key}] 上传完成 ✔")
105+
106+
107+
def main() -> None:
108+
parser = argparse.ArgumentParser(description="通用 SFTP 上传脚本")
109+
parser.add_argument(
110+
"platform",
111+
choices=list(PLATFORMS.keys()),
112+
help="要上传的平台标识",
113+
)
114+
args = parser.parse_args()
115+
upload_platform(args.platform)
116+
117+
118+
if __name__ == "__main__":
119+
main()
120+
121+
# MacOS
122+
# sudo spctl -vvv --assess --type execute /Applications/Qt-App.app
123+
# 输出如下:
124+
# /Applications/Qt-App.app: accepted
125+
# source=Notarized Developer ID
126+
# origin=Developer ID Application: ********(*******)
127+
128+
# Ubuntu
129+
# dpkg -r Qt-App
130+
# dpkg -i Qt-App_0.0.1_20250810.deb
131+
# dpkg -i --force-overwrite Qt-App_0.0.1_20250810.deb

packaging/windows/build.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
build_list = [
1010
{
11-
"qmake": r"C:\Qt\6.9.1\msvc2022_64\bin\qmake.exe",
11+
"qmake": r"C:\Qt\6.9.2\msvc2022_64\bin\qmake.exe",
1212
"qmake_params": r'"CONFIG+=qtquickcompiler"',
1313
"jom": r"C:\Qt\Tools\QtCreator\bin\jom\jom.exe",
1414
"env_bat": r'C:\"Program Files"\"Microsoft Visual Studio"\2022\Community\VC\Auxiliary\Build\vcvarsall.bat x64',

0 commit comments

Comments
 (0)