2.9 KiB
2.9 KiB
多平台编译与打包指南
在 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。
您只需将代码托管在 GitHub 仓库中,GitHub 就会为您调用免费的 Windows、macOS 和 Linux 虚拟服务器,一键自动构建出所有安装包!
操作步骤:
- 将代码推送到您的 GitHub 仓库。
- 当需要发布新版本时,在本地打上版本 tag 并推送:
git tag v1.0.0 git push origin v1.0.0 - GitHub Actions 会自动触发构建任务,并行启动三个环境:
- 💻 Windows:编译出
CursorTokenLogin.exe - 🍏 macOS:编译出
CursorTokenLogin-macOS.zip(内含.app程序) - 🐧 Linux:编译出 Linux 二进制,并分别打包为
cursortokenlogin.deb和cursortokenlogin.rpm
- 💻 Windows:编译出
- 构建完成后,GitHub 会自动创建一个 Release 版本,并将这 4 个编译好的安装包上传到 Release 中,您可以直接下载分发!
🛠️ 本地手动构建说明(Windows/Linux/Mac)
如果您不想使用 GitHub 托管,也可以在本地不同的系统环境中分别运行打包:
1. 编译 Windows 程序 (.exe)
在 Windows 命令行中运行:
python -m PyInstaller build.spec --clean
2. 编译 macOS 程序 (.app)
在 macOS 终端中运行:
python -m PyInstaller build.spec --clean
(编译生成 .app 文件目录,拷贝分发前建议压缩为 .zip)
3. 编译 Linux 安装包 (.deb / .rpm)
在 Ubuntu / Debian 终端下,可以使用以下命令快速打包:
# 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