# 打包构建指南

本项目基于 **Wails v2** 框架，使用 Go + React 构建桌面应用。

---

## 前置条件

确保以下工具已安装：

| 工具 | 验证命令 | 安装方式 |
|------|---------|---------|
| Go | `go version` | [golang.org](https://golang.org/dl/) |
| Node.js & npm | `npm -v` | [nodejs.org](https://nodejs.org/) |
| Wails CLI | `wails version` | `go install github.com/wailsapp/wails/v2/cmd/wails@latest` |

> **注意：** 如果终端提示 `command not found`，需要确保 PATH 中包含以下路径：
> ```bash
> export PATH="/usr/local/go/bin:$(go env GOPATH)/bin:/opt/homebrew/bin:$PATH"
> ```
> 建议将此行加入 `~/.zshrc` 中。

---

## 基本打包（当前平台）

```bash
wails build
```

构建产物位于 `build/bin/` 目录下：
- **macOS**: `build/bin/Betting-Assistant.app`（可直接双击运行的 .app 包）

---

## 常用构建选项

```bash
# 生产模式打包（默认）
wails build

# 打包并开启压缩（减小体积，使用 UPX）
wails build -upx

# 打包时去除调试信息（进一步减小体积）
wails build -ldflags="-s -w"

# 保留 DevTools（方便调试）
wails build -devtools

# 代码混淆
wails build -obfuscated

# 跳过前端构建（前端未改动时加速打包）
wails build -skipfrontend

# 清空 bin 目录后再构建
wails build -clean
```

---

## 跨平台构建

Wails v2 **不支持直接交叉编译**，需要在目标平台上构建。

| 平台 | 构建命令 | 产物 |
|------|---------|------|
| macOS (ARM) | `wails build -platform darwin/arm64` | `.app` |
| macOS (Intel) | `wails build -platform darwin/amd64` | `.app` |
| Windows | `wails build -platform windows/amd64` | `.exe` |
| Linux | `wails build -platform linux/amd64` | 二进制文件 |

> Windows 和 Linux 的交叉编译需要额外的工具链配置，建议在对应系统上直接构建。

---

## 自定义应用图标

替换 `build/appicon.png` 为你的图标文件（推荐 1024x1024 PNG），然后重新构建。

---

## 一键构建脚本

可以在项目根目录创建脚本 `build.sh`：

```bash
#!/bin/bash
export PATH="/usr/local/go/bin:$(go env GOPATH)/bin:/opt/homebrew/bin:$PATH"
wails build -clean -ldflags="-s -w"
echo "✅ 构建完成: build/bin/"
ls -la build/bin/
```

赋予执行权限后使用：

```bash
chmod +x build.sh
./build.sh
```

---

## 常见问题

### Q: `wails: command not found`
```bash
go install github.com/wailsapp/wails/v2/cmd/wails@latest
```

### Q: `npm: executable file not found in $PATH`
确保 `/opt/homebrew/bin` 在 PATH 中（Homebrew 安装的 Node.js）。

### Q: 检查构建环境是否就绪
```bash
wails doctor
```
此命令会检查所有依赖并给出修复建议。
