433 lines
7.3 KiB
Markdown
433 lines
7.3 KiB
Markdown
# Mobile EDA 打包指南
|
|
|
|
**版本**: v1.1.0
|
|
**最后更新**: 2026-03-07
|
|
|
|
---
|
|
|
|
## 📋 环境要求
|
|
|
|
### 通用要求
|
|
- Flutter SDK >= 3.19.0
|
|
- Dart SDK >= 3.0.0
|
|
- Git
|
|
|
|
### Android 打包
|
|
- Android SDK 30+
|
|
- JDK 11+
|
|
- Android Studio (推荐)
|
|
|
|
### Windows 打包
|
|
- Windows 10/11
|
|
- Visual Studio 2019+ (带 C++ 桌面开发)
|
|
- Windows 10 SDK
|
|
|
|
### Linux 打包
|
|
- Ubuntu 20.04+ / Debian 11+ / Fedora 35+
|
|
- Clang/CMake/Ninja
|
|
- pkg-config
|
|
- GTK+3
|
|
|
|
---
|
|
|
|
## 🚀 快速开始
|
|
|
|
### 1. 获取依赖
|
|
|
|
```bash
|
|
cd mobile-eda
|
|
flutter pub get
|
|
```
|
|
|
|
### 2. 运行测试
|
|
|
|
```bash
|
|
flutter test
|
|
```
|
|
|
|
### 3. 构建
|
|
|
|
#### 方式 A: 全平台构建 (推荐)
|
|
|
|
```bash
|
|
# Linux/macOS
|
|
./scripts/build-all.sh
|
|
|
|
# Windows (PowerShell)
|
|
.\scripts\build-windows.ps1
|
|
```
|
|
|
|
#### 方式 B: 单独平台构建
|
|
|
|
```bash
|
|
# Android APK
|
|
flutter build apk --release
|
|
|
|
# Windows EXE
|
|
flutter build windows --release
|
|
|
|
# Linux
|
|
flutter build linux --release
|
|
|
|
# Web
|
|
flutter build web --release
|
|
```
|
|
|
|
---
|
|
|
|
## 📦 输出文件
|
|
|
|
### Android
|
|
|
|
| 文件 | 说明 | 大小 |
|
|
|------|------|------|
|
|
| `mobile-eda-v1.1.0-debug.apk` | Debug 版本 | ~50MB |
|
|
| `mobile-eda-v1.1.0-release.apk` | Release 版本 | ~25MB |
|
|
| `mobile-eda-v1.1.0.aab` | Google Play Bundle | ~20MB |
|
|
|
|
### Windows
|
|
|
|
| 文件 | 说明 | 大小 |
|
|
|------|------|------|
|
|
| `mobile-eda.exe` | 主程序 | ~15MB |
|
|
| `flutter_windows.dll` | Flutter 运行时 | ~10MB |
|
|
| `*.dll` | 依赖库 | ~20MB |
|
|
| **总计** | 完整包 | ~50MB |
|
|
|
|
### Linux
|
|
|
|
| 文件 | 说明 |
|
|
|------|------|
|
|
| `mobile_eda` | 主程序 |
|
|
| `lib/` | 依赖库 |
|
|
| `data/` | 资源文件 |
|
|
|
|
### Web
|
|
|
|
| 文件 | 说明 |
|
|
|------|------|
|
|
| `index.html` | 入口页面 |
|
|
| `main.dart.js` | 编译后的 JS |
|
|
| `assets/` | 静态资源 |
|
|
|
|
---
|
|
|
|
## 🔧 详细步骤
|
|
|
|
### Android 打包
|
|
|
|
#### 1. 配置签名
|
|
|
|
创建 `android/key.properties`:
|
|
|
|
```properties
|
|
storePassword=你的密钥库密码
|
|
keyPassword=你的密钥密码
|
|
keyAlias=上传
|
|
storeFile=../upload-keystore.jks
|
|
```
|
|
|
|
#### 2. 修改 `android/app/build.gradle`
|
|
|
|
```gradle
|
|
android {
|
|
...
|
|
signingConfigs {
|
|
release {
|
|
keyAlias keystoreProperties['keyAlias']
|
|
keyPassword keystoreProperties['keyPassword']
|
|
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
|
|
storePassword keystoreProperties['storePassword']
|
|
}
|
|
}
|
|
buildTypes {
|
|
release {
|
|
signingConfig signingConfigs.release
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
#### 3. 构建
|
|
|
|
```bash
|
|
# 生成密钥库 (首次)
|
|
keytool -genkey -v -keystore upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
|
|
|
|
# 构建 Release APK
|
|
flutter build apk --release
|
|
|
|
# 构建 App Bundle (Google Play)
|
|
flutter build appbundle --release
|
|
```
|
|
|
|
#### 4. 安装测试
|
|
|
|
```bash
|
|
# 查看设备
|
|
adb devices
|
|
|
|
# 安装 APK
|
|
adb install build/app/outputs/flutter-apk/app-release.apk
|
|
```
|
|
|
|
---
|
|
|
|
### Windows 打包
|
|
|
|
#### 1. 安装 Visual Studio
|
|
|
|
- 下载 [Visual Studio Community](https://visualstudio.microsoft.com/)
|
|
- 安装时选择 "使用 C++ 的桌面开发"
|
|
- 安装 Windows 10 SDK
|
|
|
|
#### 2. 构建
|
|
|
|
```bash
|
|
# PowerShell
|
|
flutter build windows --release
|
|
|
|
# 或使用脚本
|
|
.\scripts\build-windows.ps1
|
|
```
|
|
|
|
#### 3. 创建安装包
|
|
|
|
```bash
|
|
# 进入构建目录
|
|
cd build\windows\runner\Release
|
|
|
|
# 复制所有文件到发布目录
|
|
mkdir mobile-eda-v1.1.0
|
|
copy * mobile-eda-v1.1.0\
|
|
|
|
# 压缩
|
|
Compress-Archive -Path mobile-eda-v1.1.0\* -DestinationPath mobile-eda-v1.1.0-windows-x64.zip
|
|
```
|
|
|
|
#### 4. 创建快捷方式 (可选)
|
|
|
|
使用 [Inno Setup](https://jrsoftware.org/isinfo.php) 创建安装程序:
|
|
|
|
```iss
|
|
[Setup]
|
|
AppName=Mobile EDA
|
|
AppVersion=1.1.0
|
|
DefaultDirName={pf}\MobileEDA
|
|
DefaultGroupName=Mobile EDA
|
|
OutputDir=installer
|
|
|
|
[Files]
|
|
Source: "build\windows\runner\Release\*"; DestDir: "{app}"
|
|
|
|
[Icons]
|
|
Name: "{group}\Mobile EDA"; Filename: "{app}\mobile_eda.exe"
|
|
```
|
|
|
|
---
|
|
|
|
### Linux 打包
|
|
|
|
#### 1. 安装依赖
|
|
|
|
```bash
|
|
# Ubuntu/Debian
|
|
sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev
|
|
|
|
# Fedora
|
|
sudo dnf install clang cmake ninja-build pkg-config gtk3-devel
|
|
```
|
|
|
|
#### 2. 构建
|
|
|
|
```bash
|
|
flutter build linux --release
|
|
```
|
|
|
|
#### 3. 创建 AppImage (可选)
|
|
|
|
```bash
|
|
# 安装 linuxdeploy
|
|
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
|
chmod +x linuxdeploy-x86_64.AppImage
|
|
|
|
# 创建 AppImage
|
|
./linuxdeploy-x86_64.AppImage --appdir AppDir -e build/linux/x64/release/bundle/mobile_eda -d mobile-eda.desktop -i icons/mobile_eda.png --output appimage
|
|
```
|
|
|
|
#### 4. 创建 DEB 包 (可选)
|
|
|
|
```bash
|
|
# 使用 flutter_debianizer
|
|
flutter pub add dev:flutter_debianizer
|
|
flutter debianize
|
|
cd debian
|
|
dpkg-buildpackage -us -uc -b
|
|
```
|
|
|
|
---
|
|
|
|
### Web 打包
|
|
|
|
#### 1. 构建
|
|
|
|
```bash
|
|
flutter build web --release
|
|
```
|
|
|
|
#### 2. 部署
|
|
|
|
**GitHub Pages**:
|
|
```bash
|
|
# 安装 deploy_to_github
|
|
flutter pub add deploy_to_github
|
|
|
|
# 部署
|
|
flutter pub run deploy_to_github
|
|
```
|
|
|
|
**Netlify**:
|
|
```bash
|
|
# 安装 Netlify CLI
|
|
npm install -g netlify-cli
|
|
|
|
# 部署
|
|
netlify deploy --prod --dir=build/web
|
|
```
|
|
|
|
**Vercel**:
|
|
```bash
|
|
# 安装 Vercel CLI
|
|
npm install -g vercel
|
|
|
|
# 部署
|
|
vercel --prod
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 文件大小优化
|
|
|
|
### 减少 APK 大小
|
|
|
|
```bash
|
|
# 启用代码压缩
|
|
# android/app/build.gradle
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
}
|
|
}
|
|
|
|
# 只保留需要的语言
|
|
# android/app/build.gradle
|
|
android {
|
|
defaultConfig {
|
|
resConfigs "en", "zh"
|
|
}
|
|
}
|
|
```
|
|
|
|
### 减少 Windows 大小
|
|
|
|
```bash
|
|
# 使用 flutter build windows --split-debug-info
|
|
flutter build windows --release --split-debug-info=symbols
|
|
|
|
# 压缩 DLL
|
|
upx --best *.dll
|
|
```
|
|
|
|
---
|
|
|
|
## 🔍 常见问题
|
|
|
|
### Q: Android 构建失败 "SDK not found"
|
|
|
|
**A**: 确保 ANDROID_HOME 环境变量已设置
|
|
|
|
```bash
|
|
export ANDROID_HOME=$HOME/Android/Sdk
|
|
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
|
|
```
|
|
|
|
### Q: Windows 构建失败 "Visual Studio not found"
|
|
|
|
**A**: 安装 Visual Studio 2019+ 并选择 "使用 C++ 的桌面开发"
|
|
|
|
### Q: Linux 构建失败 "GTK not found"
|
|
|
|
**A**: 安装 GTK+3 开发库
|
|
|
|
```bash
|
|
sudo apt-get install libgtk-3-dev
|
|
```
|
|
|
|
### Q: Web 构建后白屏
|
|
|
|
**A**: 检查 `baseHref` 配置
|
|
|
|
```bash
|
|
flutter build web --base-href /your-repo-name/
|
|
```
|
|
|
|
---
|
|
|
|
## 📈 性能基准
|
|
|
|
| 平台 | 启动时间 | 内存占用 | 包大小 |
|
|
|------|----------|----------|--------|
|
|
| Android | <2s | ~150MB | 25MB |
|
|
| Windows | <3s | ~200MB | 50MB |
|
|
| Linux | <2s | ~180MB | 45MB |
|
|
| Web | <5s | ~100MB | 5MB (gzip) |
|
|
|
|
---
|
|
|
|
## 📝 发布清单
|
|
|
|
### Android (Google Play)
|
|
|
|
- [ ] 签名配置
|
|
- [ ] App Bundle 构建
|
|
- [ ] 隐私政策
|
|
- [ ] 应用截图
|
|
- [ ] 描述文案
|
|
- [ ] 提交审核
|
|
|
|
### Windows (官网下载)
|
|
|
|
- [ ] 代码签名证书 (可选)
|
|
- [ ] 安装包制作
|
|
- [ ] 官网下载页
|
|
- [ ] 更新机制
|
|
|
|
### Linux (Snap/Flatpak)
|
|
|
|
- [ ] Snapcraft 配置
|
|
- [ ] Flatpak 清单
|
|
- [ ] 提交到商店
|
|
|
|
### Web (在线使用)
|
|
|
|
- [ ] 域名配置
|
|
- [ ] HTTPS 证书
|
|
- [ ] CDN 加速
|
|
- [ ] SEO 优化
|
|
|
|
---
|
|
|
|
## 🔗 相关链接
|
|
|
|
- [Flutter 官方打包文档](https://docs.flutter.dev/deployment)
|
|
- [Android 签名配置](https://docs.flutter.dev/deployment/android)
|
|
- [Windows 打包指南](https://docs.flutter.dev/deployment/windows)
|
|
- [Linux 打包指南](https://docs.flutter.dev/deployment/linux)
|
|
- [Web 部署指南](https://docs.flutter.dev/deployment/web)
|
|
|
|
---
|
|
|
|
**文档版本**: v1.0
|
|
**最后更新**: 2026-03-07
|