Skip to content

Commit 6ba01d7

Browse files
committed
build(macOS): 优化 Qt 安装和配置过程
- 使用 qt@6 代替 qt6 包名 - 动态获取 Qt 安装路径 - 更新环境变量设置,适应新路径 - 调整插件和库的复制路径 - 添加翻译文件复制 - 优化构建和 DMG 创建过程中的输出
1 parent 23a8bf8 commit 6ba01d7

File tree

1 file changed

+34
-16
lines changed

1 file changed

+34
-16
lines changed

.github/workflows/build.yml

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,27 @@ jobs:
7777
echo "Using Homebrew at: $BREW_PREFIX"
7878
7979
# 安装系统依赖
80-
brew install qt6
80+
brew install qt@6
8181
brew install create-dmg
8282
83+
# 获取 Qt 实际安装路径
84+
QT_PATH=$(brew --prefix qt)
85+
echo "Qt installed at: $QT_PATH"
86+
8387
# 设置 Qt 环境变量
8488
echo "PYTHONPATH=${GITHUB_WORKSPACE}" >> $GITHUB_ENV
85-
echo "QT_PLUGIN_PATH=$BREW_PREFIX/opt/qt6/plugins" >> $GITHUB_ENV
86-
echo "QT_QPA_PLATFORM_PATH=$BREW_PREFIX/opt/qt6/plugins/platforms" >> $GITHUB_ENV
87-
echo "QT_LIBRARY_PATH=$BREW_PREFIX/opt/qt6/lib" >> $GITHUB_ENV
89+
echo "QT_PLUGIN_PATH=$QT_PATH/share/qt/plugins" >> $GITHUB_ENV
90+
echo "QT_QPA_PLATFORM_PATH=$QT_PATH/share/qt/plugins/platforms" >> $GITHUB_ENV
91+
echo "QT_LIBRARY_PATH=$QT_PATH/lib" >> $GITHUB_ENV
92+
echo "QT_TRANSLATIONS_PATH=$QT_PATH/share/qt/translations" >> $GITHUB_ENV
8893
echo "QT_DEBUG_PLUGINS=1" >> $GITHUB_ENV
8994
9095
# 显示 Qt 安装信息
91-
brew list qt6 --verbose
92-
ls -la $BREW_PREFIX/opt/qt6/plugins
93-
ls -la $BREW_PREFIX/opt/qt6/plugins/platforms
96+
brew list qt --verbose
97+
echo "Checking Qt directories:"
98+
ls -la "$QT_PATH/share/qt/plugins" || true
99+
ls -la "$QT_PATH/share/qt/plugins/platforms" || true
100+
ls -la "$QT_PATH/lib" || true
94101
95102
echo "Installed packages:"
96103
pip list
@@ -120,18 +127,22 @@ jobs:
120127
- name: Build (macOS ARM)
121128
if: runner.os == 'macOS'
122129
run: |
130+
# 获取 Qt 路径
131+
QT_PATH=$(brew --prefix qt)
132+
123133
# 添加 Qt 相关配置到 spec 文件
124134
echo "import os" > Text2Voice.spec
125-
echo "qt_plugin_path = '/opt/homebrew/opt/qt6/plugins'" >> Text2Voice.spec
126-
echo "qt_lib_path = '/opt/homebrew/opt/qt6/lib'" >> Text2Voice.spec
135+
echo "qt_plugin_path = '$QT_PATH/share/qt/plugins'" >> Text2Voice.spec
136+
echo "qt_lib_path = '$QT_PATH/lib'" >> Text2Voice.spec
127137
128138
pyinstaller --noconsole \
129139
--add-data ".env:." \
130140
--add-data "assets:assets" \
131141
--add-data "resources:resources" \
132142
--add-data "ui/styles:ui/styles" \
133-
--add-binary "/opt/homebrew/opt/qt6/plugins/platforms/libqcocoa.dylib:PyQt6/Qt6/plugins/platforms/" \
134-
--add-binary "/opt/homebrew/opt/qt6/plugins/styles/libqmacstyle.dylib:PyQt6/Qt6/plugins/styles/" \
143+
--add-binary "$QT_PATH/share/qt/plugins/platforms/libqcocoa.dylib:PyQt6/Qt6/plugins/platforms/" \
144+
--add-binary "$QT_PATH/share/qt/plugins/styles/libqmacstyle.dylib:PyQt6/Qt6/plugins/styles/" \
145+
--add-data "$QT_PATH/share/qt/translations:PyQt6/Qt6/translations" \
135146
--name "Text2Voice-ARM" \
136147
--hidden-import PyQt6.QtCore \
137148
--hidden-import PyQt6.QtGui \
@@ -143,25 +154,32 @@ jobs:
143154
main.py
144155
145156
# 验证构建结果
157+
echo "Checking build artifacts:"
146158
otool -L "dist/Text2Voice-ARM.app/Contents/MacOS/Text2Voice-ARM"
147-
ls -R "dist/Text2Voice-ARM.app/Contents/Frameworks/"
148-
ls -R "dist/Text2Voice-ARM.app/Contents/PlugIns/"
159+
ls -R "dist/Text2Voice-ARM.app/Contents/Frameworks/" || true
160+
ls -R "dist/Text2Voice-ARM.app/Contents/PlugIns/" || true
149161
150162
# 创建 DMG (macOS ARM)
151163
- name: Create DMG (macOS ARM)
152164
if: runner.os == 'macOS'
153165
run: |
166+
QT_PATH=$(brew --prefix qt)
167+
154168
# 确保应用程序可执行
155169
chmod +x "dist/Text2Voice-ARM.app/Contents/MacOS/Text2Voice-ARM"
156170
157171
# 复制额外的 Qt 插件
158172
mkdir -p "dist/Text2Voice-ARM.app/Contents/PlugIns/platforms"
159173
mkdir -p "dist/Text2Voice-ARM.app/Contents/PlugIns/styles"
160-
cp -f "/opt/homebrew/opt/qt6/plugins/platforms/libqcocoa.dylib" "dist/Text2Voice-ARM.app/Contents/PlugIns/platforms/"
161-
cp -f "/opt/homebrew/opt/qt6/plugins/styles/libqmacstyle.dylib" "dist/Text2Voice-ARM.app/Contents/PlugIns/styles/"
174+
cp -f "$QT_PATH/share/qt/plugins/platforms/libqcocoa.dylib" "dist/Text2Voice-ARM.app/Contents/PlugIns/platforms/" || true
175+
cp -f "$QT_PATH/share/qt/plugins/styles/libqmacstyle.dylib" "dist/Text2Voice-ARM.app/Contents/PlugIns/styles/" || true
176+
177+
# 复制翻译文件
178+
mkdir -p "dist/Text2Voice-ARM.app/Contents/translations"
179+
cp -f "$QT_PATH/share/qt/translations/"*.qm "dist/Text2Voice-ARM.app/Contents/translations/" || true
162180
163181
# 使用 macdeployqt 处理 Qt 依赖
164-
/opt/homebrew/opt/qt6/bin/macdeployqt "dist/Text2Voice-ARM.app" -verbose=3
182+
"$QT_PATH/bin/macdeployqt" "dist/Text2Voice-ARM.app" -verbose=3 || true
165183
166184
create-dmg \
167185
--volname "Text2Voice" \

0 commit comments

Comments
 (0)