4.1 KiB
4.1 KiB
IPTV Desktop 构建指南
支持平台:macOS | Windows | Linux
macOS 构建
1. 安装依赖
# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
2. 构建应用
# 一键构建
cd /Users/liyanyan/study/single-portal/iptv-app
./build-mac.sh
或手动构建:
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. 安装依赖
- 安装 Rust:访问 https://rustup.rs/ 下载安装程序
- 安装 Node.js:访问 https://nodejs.org/ 下载 LTS 版本
2. 构建应用
方式一:PowerShell(推荐)
# 右键开始菜单 -> Windows PowerShell
cd C:\Users\YourName\study\single-portal\iptv-app
.\build-windows.ps1
方式二:CMD
cd C:\Users\YourName\study\single-portal\iptv-app
build-windows.bat
方式三:手动
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. 安装依赖
# 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. 构建应用
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 关键配置
{
"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 未安装
# macOS/Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Windows
# 访问 https://rustup.rs/ 下载安装程序
2. 构建失败 "No such file or directory"
确保在项目根目录执行脚本:
cd /Users/liyanyan/study/single-portal/iptv-app
ls -la # 应该能看到 web/, desktop/, build-mac.sh
3. Windows 安装后无法运行
- 安装 WebView2 运行时(Windows 10/11 通常已预装)
- 检查是否被杀毒软件拦截,添加信任
- 右键 -> 属性 -> 解除锁定(如有)
4. 签名问题
Mac 开发版:
xattr -cr "IPTV Player.app" # 移除隔离属性
Windows 发布版: 需要购买代码签名证书,或使用自签名(测试用)
平台特性对比
| 特性 | macOS | Windows | Linux |
|---|---|---|---|
| 安装包 | .app / .dmg | .msi / .exe | .deb / .AppImage |
| 包体积 | ~5MB | ~5MB | ~5MB |
| 自动更新 | ✅ | ✅ | ✅ |
| 原生菜单 | ✅ | ✅ | ✅ |
| 系统托盘 | ✅ | ✅ | ✅ |
调试模式
开发时可以使用调试模式,更快启动:
cd desktop
npm run tauri dev
这会启动开发服务器,支持热重载。