Making.School.Asignment.app/making_school_asignment_app/README_mac_build.md

102 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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