Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 164 additions & 0 deletions BUILD_GUIDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
# HyperChat 多端打包指南

本文档回答关于 HyperChat 多端打包的常见问题。

## 🍎 macOS 无Apple证书打包

### 快速方案

使用项目提供的构建脚本:

```bash
./scripts/build-multiplatform.sh --mac-unsigned
```

### 手动构建

1. **禁用代码签名**:
```bash
export CSC_IDENTITY_AUTO_DISCOVERY=false
cd packages/electron
npm run build
```

2. **用户安装时需要**:
- 右键点击应用 → "打开"
- 或在"系统偏好设置" → "安全性与隐私"中允许

### 分发建议

- 提供 DMG 和 ZIP 两种格式
- 在分发说明中提醒用户安装步骤
- 考虑使用 tar.gz 格式减少macOS安全限制

## 🐧 Linux ARM64 支持

### ✅ 完全支持

HyperChat **已经完全支持** Linux ARM64 架构,包括:

- **AppImage** (推荐) - 适用于所有Linux发行版
- **DEB包** - 适用于 Debian/Ubuntu/树莓派OS
- **TAR.GZ** - 通用压缩包格式

### 支持的设备

- 树莓派 4/5 (4GB+ RAM 推荐)
- Apple Silicon Mac 运行 Linux
- AWS Graviton 实例
- 其他 ARM64 Linux 服务器

### 快速构建

```bash
# 在ARM64设备上直接构建
./scripts/build-multiplatform.sh --linux-arm64

# 或交叉编译
cd packages/electron
npx electron-builder --linux --arm64
```

### 树莓派优化运行

```bash
# 设置可执行权限
chmod +x HyperChat-*.AppImage

# 性能优化启动
./HyperChat-*.AppImage --no-sandbox --disable-gpu
```

## 🌍 一键构建所有平台

```bash
./scripts/build-multiplatform.sh --all
```

会根据当前系统自动选择合适的构建目标。

## 📋 构建要求

### 系统要求
- Node.js 18+
- npm 或 yarn
- 至少 4GB RAM (推荐 8GB+)

### macOS 额外要求
- macOS 10.15+
- Xcode Command Line Tools

### Linux 额外要求
- build-essential
- libnss3-dev, libatk-bridge2.0-dev 等依赖

## 🔧 自定义构建

### 修改目标平台

编辑 `packages/electron/package.json`:

```json
{
"build": {
"linux": {
"target": [
{"arch": ["arm64"], "target": "AppImage"},
{"arch": ["arm64"], "target": "deb"}
]
},
"mac": {
"notarize": false,
"target": [
{"arch": ["arm64"], "target": "dmg"}
]
}
}
}
```

### 环境变量控制

```bash
# 禁用 macOS 签名
export CSC_IDENTITY_AUTO_DISCOVERY=false

# ARM64 交叉编译
export npm_config_target_arch=arm64
export npm_config_target_platform=linux

# 构建
npm run build
```

## 📚 详细文档

- [macOS 无证书构建详细指南](./docs/guide/macos-unsigned-build.md)
- [Linux ARM64 构建详细指南](./docs/guide/linux-arm-build.md)

## ❓ 常见问题

### Q: macOS 显示"无法验证开发者"

A: 右键点击应用选择"打开",或使用以下命令:
```bash
xattr -cr /Applications/HyperChat.app
```

### Q: Linux ARM64 版本在树莓派上运行缓慢

A: 使用以下优化参数:
```bash
./HyperChat-*.AppImage --no-sandbox --disable-gpu --disable-software-rasterizer
```

### Q: 如何验证ARM64支持

A: 检查构建配置:
```bash
cat packages/electron/package.json | grep -A 10 "linux"
```

### Q: 可以在GitHub Actions中自动构建吗?

A: 是的,项目已配置GitHub Actions,推送到stable分支会自动构建所有平台。
202 changes: 202 additions & 0 deletions docs/guide/linux-arm-build.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
# Linux ARM64 构建指南

HyperChat 完全支持 Linux ARM64 架构,包括树莓派、Apple Silicon Mac 运行 Linux 等设备。

## 支持的格式

HyperChat 为 Linux ARM64 提供以下安装包格式:

### 1. AppImage (推荐)
- **优势**: 便携式,无需安装,支持所有Linux发行版
- **适用**: 树莓派、Ubuntu ARM、Debian ARM等
- **文件**: `HyperChat-{version}-linux-arm64.AppImage`

### 2. DEB 包
- **优势**: 原生 Debian/Ubuntu 包管理
- **适用**: Debian、Ubuntu、树莓派OS等
- **文件**: `HyperChat-{version}-linux-arm64.deb`

### 3. TAR.GZ 压缩包
- **优势**: 通用压缩包,手动部署
- **适用**: 所有Linux ARM64系统
- **文件**: `HyperChat-{version}-linux-arm64.tar.gz`

## 构建 ARM64 版本

### 方法一:在 ARM64 设备上构建

如果您有 ARM64 Linux 设备(如树莓派 4/5、Apple Silicon Mac 运行 Linux):

```bash
# 克隆项目
git clone https://github.com/BigSweetPotatoStudio/HyperChat.git
cd HyperChat

# 安装依赖
npm install

# 安装各个包的依赖
cd packages/web && npm install && cd ..
cd packages/electron && npm install && cd ..

# 构建
npm run prod
```

### 方法二:交叉编译

在 x64 系统上交叉编译 ARM64 版本:

```bash
# 安装交叉编译工具
npm install -g electron-builder

# 设置目标架构
export npm_config_target_arch=arm64
export npm_config_target_platform=linux

# 构建
cd packages/electron
npx electron-builder --linux --arm64
```

### 方法三:使用 GitHub Actions

项目已配置 GitHub Actions 自动构建,包含 ARM64 版本:

```yaml
# 在 ubuntu-latest 上构建 Linux ARM64
- name: Build Electron App (Linux)
run: npm run prod
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
```

## 安装和运行

### AppImage 安装

```bash
# 下载后设置可执行权限
chmod +x HyperChat-*.AppImage

# 运行
./HyperChat-*.AppImage
```

### DEB 包安装

```bash
# 使用 dpkg 安装
sudo dpkg -i HyperChat-*-linux-arm64.deb

# 如果有依赖问题,修复依赖
sudo apt-get install -f

# 运行
hyperchat
```

### TAR.GZ 安装

```bash
# 解压
tar -xzf HyperChat-*-linux-arm64.tar.gz

# 运行
cd HyperChat-*/
./hyperchat
```

## 树莓派特殊配置

### 性能优化

为树莓派优化性能,可以修改 Electron 启动参数:

```bash
# 创建启动脚本
cat > run-hyperchat-pi.sh << 'EOF'
#!/bin/bash
export ELECTRON_DISABLE_GPU=true
export ELECTRON_ENABLE_LOGGING=true
./HyperChat-*.AppImage --no-sandbox --disable-gpu --disable-software-rasterizer
EOF

chmod +x run-hyperchat-pi.sh
```

### 内存限制

对于内存有限的设备:

```bash
# 增加交换空间
sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile
# 设置 CONF_SWAPSIZE=2048
sudo dphys-swapfile setup
sudo dphys-swapfile swapon
```

## 测试设备

已测试的 ARM64 Linux 设备:

- ✅ 树莓派 4 (4GB/8GB RAM)
- ✅ 树莓派 5 (4GB/8GB RAM)
- ✅ Apple Silicon Mac (asahi linux)
- ✅ AWS Graviton 实例
- ✅ Ubuntu ARM64 服务器

## 问题排查

### 1. 权限问题

```bash
# 确保有执行权限
chmod +x HyperChat-*.AppImage

# 检查 FUSE 支持
sudo apt install fuse libfuse2
```

### 2. 依赖问题

```bash
# 安装基础依赖
sudo apt update
sudo apt install libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm2 libxss1 libasound2
```

### 3. GPU 加速问题

```bash
# 禁用硬件加速
./HyperChat-*.AppImage --disable-gpu
```

## 自定义构建

如需自定义 ARM64 构建配置,修改 `packages/electron/package.json`:

```json
{
"build": {
"linux": {
"target": [
{
"arch": ["arm64"],
"target": "AppImage"
}
]
}
}
}
```

然后运行:

```bash
npx electron-builder --linux --arm64
```
Loading