### HiFastVPN

Hi快VPN 客户端应用，提供安全的 VPN 连接服务，支持 Android, iOS, macOS, Windows

### 环境准备
- **Flutter SDK**: `3.27.0`
- **Dart SDK**: `>=3.5.0 <4.0.0`
- **Make**: 用于执行构建自动化脚本

### 基础脚本

> 核心启动和构建模块均已集成在 `Makefile` 中。

项目启动命令和构建release命令
```bash
# 项目初始化准备
make android-prepare
make ios-prepare
make macos-prepare
make windows-prepare
# 项目release
make android-release
make ios-release
make macos-release
make windows-release
```

## 注意事项

### 📱 Android
> android-release
- release apk：路径在 `build/app/outputs/apk/release/app-arm64-v8a-release.apk`, 这个版本兼容近5年内android，其他版本体积过大或过老

### 🍎 iOS
> ios-release
- **证书管理**: 开发环境使用automaticall模式自动，生产环境需要下载hiFastVPN-iOs-Prod的profile
- ipa发布后使用 `Transporter.app`上传到苹果后台
- release apk：路径在 `dist/对应版本号/*.ipa`, 
#### 问题
- ios真机调试，出现开发环境flutter运行一会就断开，日志没法看，并且生成flutter.log文件，但在xcode可以正常看到日志
  修改mac上的设置 -> 本机网络 -> android studio 开启

### 💻 macOS
> macos-release
- release apk：路径在 `dist/对应版本号/*.dmg`,完成公证和dmg封面制作
#### 问题
- 启动过程中遇到  Crash occurred when compiling unknown function in unoptimized JIT mode in unknown pass
  1. xcode修改配置， macOS -> signing Certificate -> 选择 sign to Run Locally； 
  2. 使用automaticall
- 启动过程中页面卡在启动页 FFISingboxService - singbox native libs path: "libcore.dylib"
  是ffi_singbox_service.dart找不到路径导致的卡住
  

### 🪟 Windows
- 环境需要Inno Setup
- 需要注意Inno Setup中有没有 `ChineseSimplified.isl`，如果没有需要下载，放在对应的languages文件夹，不是hi-client项目
- release apk：路径在 `dist/对应版本号/*.exe`,
