102 lines
2.5 KiB
Markdown
102 lines
2.5 KiB
Markdown
# 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
|
||
```
|
||
|
||
脚本会自动打开此文件夹并显示详细信息。
|