# 多平台编译与打包指南

在 Windows 系统下，由于 PyInstaller 的工作机制是直接打包当前平台的 Python 解析器和系统动态库，**它不支持交叉编译**（即在 Windows 本机无法编译出 macOS 的 `.app` 苹果程序，也无法直接打包 Linux 的 `.deb` 或 `.rpm` 安装包）。

为了解决这个问题，并在一台电脑上实现 4 端程序（Windows `.exe`、macOS `.app`、Debian/Ubuntu `.deb`、RedHat/Fedora `.rpm`）的统一打包，我们已经在项目中配置了 **GitHub Actions 自动化流水线**。

---

## 🚀 推荐方案：使用 GitHub Actions 自动打包 4 端程序

我们已经在项目中创建了自动化打包脚本：[.github/workflows/build.yml](file:///.github/workflows/build.yml)。

您只需将代码托管在 GitHub 仓库中，GitHub 就会为您调用免费的 Windows、macOS 和 Linux 虚拟服务器，一键自动构建出所有安装包！

### 操作步骤：
1. **将代码推送到您的 GitHub 仓库**。
2. 当需要发布新版本时，在本地打上版本 tag 并推送：
   ```bash
   git tag v1.0.0
   git push origin v1.0.0
   ```
3. GitHub Actions 会自动触发构建任务，并行启动三个环境：
   - 💻 **Windows**：编译出 `CursorTokenLogin.exe`
   - 🍏 **macOS**：编译出 `CursorTokenLogin-macOS.zip` (内含 `.app` 程序)
   - 🐧 **Linux**：编译出 Linux 二进制，并分别打包为 `cursortokenlogin.deb` 和 `cursortokenlogin.rpm`
4. 构建完成后，GitHub 会自动创建一个 Release 版本，并将这 4 个编译好的安装包上传到 Release 中，您可以直接下载分发！

---

## 🛠️ 本地手动构建说明（Windows/Linux/Mac）

如果您不想使用 GitHub 托管，也可以在本地不同的系统环境中分别运行打包：

### 1. 编译 Windows 程序 (`.exe`)
在 Windows 命令行中运行：
```bash
python -m PyInstaller build.spec --clean
```

### 2. 编译 macOS 程序 (`.app`)
在 macOS 终端中运行：
```bash
python -m PyInstaller build.spec --clean
```
*(编译生成 `.app` 文件目录，拷贝分发前建议压缩为 `.zip`)*

### 3. 编译 Linux 安装包 (`.deb` / `.rpm`)
在 Ubuntu / Debian 终端下，可以使用以下命令快速打包：
```bash
# 1. 编译 Linux 原生可执行文件
python -m PyInstaller build.spec --clean

# 2. 组织 DEB 包目录结构并打包
mkdir -p deb-package/DEBIAN
mkdir -p deb-package/usr/bin
cp dist/CursorTokenLogin deb-package/usr/bin/cursortokenlogin
chmod +x deb-package/usr/bin/cursortokenlogin

# 创建 control 配置文件
cat <<EOF > deb-package/DEBIAN/control
Package: cursortokenlogin
Version: 1.0.0
Architecture: amd64
Maintainer: Yunzer
Description: Cursor Token Login Helper
EOF

# 生成 deb 安装包
dpkg-deb --build deb-package cursortokenlogin.deb

# 3. 使用 alien 将 deb 包转换为 rpm 包
sudo apt-get install alien
sudo alien --to-rpm --scripts cursortokenlogin.deb
```
