# IPTV Desktop 构建指南 支持平台:**macOS** | **Windows** | **Linux** --- ## macOS 构建 ### 1. 安装依赖 ```bash # 安装 Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.cargo/env ``` ### 2. 构建应用 ```bash # 一键构建 cd /Users/liyanyan/study/single-portal/iptv-app ./build-mac.sh ``` 或手动构建: ```bash cd web && npm run build && cp -r public/api dist-web/ && cd .. cd desktop && npm install && npx tauri build ``` ### 3. 输出位置 ``` src-tauri/target/release/bundle/macos/IPTV Player.app ``` --- ## Windows 构建 ### 1. 安装依赖 1. 安装 Rust:访问 https://rustup.rs/ 下载安装程序 2. 安装 Node.js:访问 https://nodejs.org/ 下载 LTS 版本 ### 2. 构建应用 **方式一:PowerShell(推荐)** ```powershell # 右键开始菜单 -> Windows PowerShell cd C:\Users\YourName\study\single-portal\iptv-app .\build-windows.ps1 ``` **方式二:CMD** ```cmd cd C:\Users\YourName\study\single-portal\iptv-app build-windows.bat ``` **方式三:手动** ```cmd cd web npm install npm run build xcopy /e /i /y public\api dist-web\api cd ..\desktop npm install npx tauri build ``` ### 3. 输出位置 ``` src-tauri\target\release\bundle\msi\IPTV Player_1.0.0_x64.msi (安装版) src-tauri\target\release\bundle\nsis\IPTV Player_1.0.0_x64.exe (便携版) ``` ### 4. 安装方式 - **MSI 版**:双击安装,支持自动更新 - **EXE 版**:免安装,直接运行 --- ## Linux 构建 ### 1. 安装依赖 ```bash # Ubuntu/Debian sudo apt update sudo apt install libwebkit2gtk-4.0-dev libssl-dev libgtk-3-dev # 安装 Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.cargo/env ``` ### 2. 构建应用 ```bash cd /Users/liyanyan/study/single-portal/iptv-app ./build-mac.sh # 脚本通用 ``` ### 3. 输出位置 ``` src-tauri/target/release/bundle/deb/*.deb src-tauri/target/release/bundle/appimage/*.AppImage ``` --- ## 项目结构 ``` desktop/ ├── package.json # Node 配置 ├── BUILD.md # 本文件 ├── dist-web/ # Web 静态文件 │ ├── index.html │ └── api/ # IPTV 数据 └── src-tauri/ ├── Cargo.toml # Rust 依赖 ├── tauri.conf.json # Tauri 配置 ├── build.rs # 构建脚本 ├── src/main.rs # 入口 └── icons/ # 应用图标 ``` --- ## 配置说明 ### tauri.conf.json 关键配置 ```json { "windows": [{ "width": 1200, "height": 800, "minWidth": 900, "minHeight": 600, "center": true, "title": "IPTV Player" }] } ``` ### 自定义图标 替换 `src-tauri/icons/` 下的文件: - `icon.icns` - Mac 图标 - `icon.ico` - Windows 图标 - `32x32.png`, `128x128.png` - Linux 图标 --- ## 常见问题 ### 1. Rust 未安装 ```bash # macOS/Linux curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Windows # 访问 https://rustup.rs/ 下载安装程序 ``` ### 2. 构建失败 "No such file or directory" 确保在项目根目录执行脚本: ```bash cd /Users/liyanyan/study/single-portal/iptv-app ls -la # 应该能看到 web/, desktop/, build-mac.sh ``` ### 3. Windows 安装后无法运行 - 安装 WebView2 运行时(Windows 10/11 通常已预装) - 检查是否被杀毒软件拦截,添加信任 - 右键 -> 属性 -> 解除锁定(如有) ### 4. 签名问题 **Mac 开发版**: ```bash xattr -cr "IPTV Player.app" # 移除隔离属性 ``` **Windows 发布版**: 需要购买代码签名证书,或使用自签名(测试用) --- ## 平台特性对比 | 特性 | macOS | Windows | Linux | |------|-------|---------|-------| | 安装包 | .app / .dmg | .msi / .exe | .deb / .AppImage | | 包体积 | ~5MB | ~5MB | ~5MB | | 自动更新 | ✅ | ✅ | ✅ | | 原生菜单 | ✅ | ✅ | ✅ | | 系统托盘 | ✅ | ✅ | ✅ | --- ## 调试模式 开发时可以使用调试模式,更快启动: ```bash cd desktop npm run tauri dev ``` 这会启动开发服务器,支持热重载。