# macOS Flutter APK 构建脚本使用说明

## 概述
`flutter_build_apk_onmac.sh` 是基于Windows版本的 `flutter_build_apk_onwindows.bat` 脚本改写的macOS版本，用于在macOS系统上构建Flutter APK。

## 主要功能
1. **进程清理**: 终止相关的Java和Gradle进程
2. **项目清理**: 执行 `flutter clean`
3. **文件清理**: 删除 `build`、`.dart_tool`、`pubspec.lock` 等文件夹
4. **依赖管理**: 执行 `flutter pub get`
5. **代码生成**: 运行 `build_runner`
6. **APK构建**: 构建release版本的APK
7. **结果展示**: 自动打开APK所在文件夹并显示文件信息

## 使用方法

### 1. 设置执行权限
在终端中执行以下命令为脚本添加执行权限：
```bash
chmod +x flutter_build_apk_onmac.sh
```

### 2. 运行脚本
```bash
./flutter_build_apk_onmac.sh
```

或者直接用bash运行：
```bash
bash flutter_build_apk_onmac.sh
```

## 系统要求
- macOS 系统
- 已安装 Flutter SDK
- 已安装 Android SDK
- 项目已正确配置Android构建环境

## 脚本特性

### 错误处理
- 使用 `set -e` 确保任何命令失败时脚本立即退出
- 详细的错误日志输出
- 进程清理的容错处理

### 日志系统
脚本包含彩色日志输出：
- 🔵 **INFO**: 一般信息
- 🟢 **SUCCESS**: 成功操作
- 🟡 **WARNING**: 警告信息
- 🔴 **ERROR**: 错误信息

### 强制删除功能
- 实现了类似Windows版本的强制删除机制
- 支持重试机制（最多3次）
- 指数退避策略

### 自动化功能
- 自动打开APK所在文件夹（使用macOS的`open`命令）
- 显示生成的APK文件列表
- 构建完成后的详细信息展示

## 与Windows版本的主要差异

| 功能 | Windows版本 | macOS版本 |
|------|------------|-----------|
| 脚本语言 | Batch (.bat) | Bash (.sh) |
| 进程终止 | `taskkill` | `pkill` |
| 文件删除 | `del`, `rmdir` | `rm -rf` |
| 打开文件夹 | `explorer` | `open` |
| 编码设置 | `chcp 65001` | UTF-8默认支持 |
| 错误处理 | `ERRORLEVEL` | 退出码 `$?` |

## 故障排除

### 权限问题
如果遇到权限错误，确保脚本有执行权限：
```bash
ls -la flutter_build_apk_onmac.sh
# 应该显示类似: -rwxr-xr-x 的权限
```

### Flutter环境问题
确保Flutter环境正确配置：
```bash
flutter doctor
```

### Android SDK问题
确保Android SDK路径正确配置：
```bash
echo $ANDROID_HOME
```

## 输出文件位置
构建成功后，APK文件将位于：
```
build/app/outputs/flutter-apk/app-release.apk
```

脚本会自动打开此文件夹并显示详细信息。
