diff --git a/build-linux-package.sh b/build-linux-package.sh index 5c6d8bd..1289357 100755 --- a/build-linux-package.sh +++ b/build-linux-package.sh @@ -55,6 +55,8 @@ cp -r "$PROJECT_DIR/models" "$DIST_DIR/" 2>/dev/null || mkdir -p "$DIST_DIR/mode cp "$PROJECT_DIR/resources/configs/default.toml" "$DIST_DIR/config.toml" 2>/dev/null || true cp "$PROJECT_DIR/icons/icon.png" "$DIST_DIR/" 2>/dev/null || true cp "$PROJECT_DIR/icons/tray-icon.png" "$DIST_DIR/" 2>/dev/null || true +# 复制 Tauri 权限配置(Tauri v2 必需) +cp -r "$PROJECT_DIR/capabilities" "$DIST_DIR/" # 创建 README.md cat > "$DIST_DIR/README.md" << 'README_EOF' @@ -167,6 +169,7 @@ echo " - impress_asr_gui (GUI 桌面应用)" echo " - impress_asr (CLI 工具)" echo " - icon.png (应用图标)" echo " - tray-icon.png (托盘图标)" +echo " - capabilities/ (Tauri 权限配置)" echo " - config.toml (可选,配置文件)" echo " - models/ (模型文件目录)" echo " - dist/ (前端资源)" diff --git a/build-windows-package.sh b/build-windows-package.sh index 6f6cbcf..448e8af 100755 --- a/build-windows-package.sh +++ b/build-windows-package.sh @@ -48,6 +48,8 @@ cp "$PROJECT_DIR/impress_asr_gui.exe.manifest" "$DIST_DIR/" cp "$PROJECT_DIR/target/x86_64-pc-windows-msvc/release/impress_asr.exe" "$DIST_DIR/" cp "$PROJECT_DIR/impress_asr.exe.manifest" "$DIST_DIR/" cp "$PROJECT_DIR/icons/tray-icon.png" "$DIST_DIR/" +# 复制 Tauri 权限配置(Tauri v2 必需) +cp -r "$PROJECT_DIR/capabilities" "$DIST_DIR/" # 复制前端文件(cargo xwin 不会自动嵌入前端资源) echo "复制前端资源..." @@ -177,7 +179,7 @@ ls -lh "$DIST_DIR/" echo "" echo "[5/6] 打包成 ZIP 文件..." cd "$DIST_DIR" -zip -r "$OUTPUT_ZIP" *.exe *.manifest *.png *.md dist/ 2>/dev/null || { +zip -r "$OUTPUT_ZIP" *.exe *.manifest *.png *.md capabilities/ dist/ 2>/dev/null || { # 如果没有 zip 命令,使用 Python cd "$PROJECT_DIR" python3 -c " diff --git a/web/src/pages/SettingsPage.tsx b/web/src/pages/SettingsPage.tsx index 6a0e1c2..8ac615b 100644 --- a/web/src/pages/SettingsPage.tsx +++ b/web/src/pages/SettingsPage.tsx @@ -78,15 +78,19 @@ export default function SettingsPage({ theme, onThemeChange }: SettingsPageProps const handleSelectModel = async () => { try { + console.log('开始调用 select_model_file 命令...') const modelPath = await window.__TAURI__.invoke('select_model_file') + console.log('模型文件选择结果:', modelPath) if (modelPath) { const path = modelPath as string setSettings(prev => ({ ...prev, modelPath: path })) setModified(true) + console.log('模型路径已更新:', path) } - } catch (e) { - console.error('选择模型文件失败:', e) - alert('选择模型文件失败,请重试') + } catch (error) { + console.error('选择模型文件失败,错误详情:', error) + const errorMessage = error instanceof Error ? error.message : String(error) + alert(`选择模型文件失败:${errorMessage}`) } }