157 lines
4.6 KiB
Bash
157 lines
4.6 KiB
Bash
#!/bin/bash
|
||
# 全平台构建脚本
|
||
# 用法:./scripts/build-all.sh
|
||
|
||
echo "========================================"
|
||
echo " Mobile EDA - 全平台构建"
|
||
echo " 版本:v1.1.0"
|
||
echo "========================================"
|
||
echo ""
|
||
|
||
# 记录开始时间
|
||
START_TIME=$(date +%s)
|
||
|
||
# 获取依赖
|
||
echo "📦 获取依赖..."
|
||
flutter pub get
|
||
if [ $? -ne 0 ]; then
|
||
echo "❌ 依赖获取失败"
|
||
exit 1
|
||
fi
|
||
echo "✅ 依赖获取完成"
|
||
echo ""
|
||
|
||
# 创建输出目录
|
||
OUTPUT_DIR="build/dist"
|
||
mkdir -p $OUTPUT_DIR
|
||
echo "📁 输出目录:$OUTPUT_DIR"
|
||
echo ""
|
||
|
||
# ============================================================================
|
||
# Android 构建
|
||
# ============================================================================
|
||
echo "========================================"
|
||
echo " 🤖 Android 构建"
|
||
echo "========================================"
|
||
|
||
flutter build apk --release
|
||
if [ $? -eq 0 ]; then
|
||
cp build/app/outputs/flutter-apk/app-release.apk $OUTPUT_DIR/mobile-eda-v1.1.0-android.apk
|
||
echo "✅ Android APK 构建完成"
|
||
else
|
||
echo "❌ Android APK 构建失败"
|
||
fi
|
||
echo ""
|
||
|
||
# ============================================================================
|
||
# Windows 构建
|
||
# ============================================================================
|
||
echo "========================================"
|
||
echo " 🪟 Windows 构建"
|
||
echo "========================================"
|
||
|
||
flutter build windows --release
|
||
if [ $? -eq 0 ]; then
|
||
mkdir -p $OUTPUT_DIR/mobile-eda-v1.1.0-windows-x64
|
||
cp -r build/windows/runner/Release/* $OUTPUT_DIR/mobile-eda-v1.1.0-windows-x64/
|
||
echo "✅ Windows EXE 构建完成"
|
||
else
|
||
echo "❌ Windows EXE 构建失败"
|
||
fi
|
||
echo ""
|
||
|
||
# ============================================================================
|
||
# Linux 构建 (可选)
|
||
# ============================================================================
|
||
echo "========================================"
|
||
echo " 🐧 Linux 构建 (可选)"
|
||
echo "========================================"
|
||
|
||
flutter build linux --release
|
||
if [ $? -eq 0 ]; then
|
||
mkdir -p $OUTPUT_DIR/mobile-eda-v1.1.0-linux-x64
|
||
cp -r build/linux/x64/release/bundle/* $OUTPUT_DIR/mobile-eda-v1.1.0-linux-x64/
|
||
echo "✅ Linux 构建完成"
|
||
else
|
||
echo "⚠️ Linux 构建失败 (可选)"
|
||
fi
|
||
echo ""
|
||
|
||
# ============================================================================
|
||
# Web 构建 (可选)
|
||
# ============================================================================
|
||
echo "========================================"
|
||
echo " 🌐 Web 构建 (可选)"
|
||
echo "========================================"
|
||
|
||
flutter build web --release
|
||
if [ $? -eq 0 ]; then
|
||
cp -r build/web $OUTPUT_DIR/mobile-eda-v1.1.0-web
|
||
echo "✅ Web 构建完成"
|
||
else
|
||
echo "⚠️ Web 构建失败 (可选)"
|
||
fi
|
||
echo ""
|
||
|
||
# ============================================================================
|
||
# 创建压缩包
|
||
# ============================================================================
|
||
echo "========================================"
|
||
echo " 📦 创建压缩包"
|
||
echo "========================================"
|
||
|
||
cd $OUTPUT_DIR
|
||
|
||
# Android
|
||
if [ -f "mobile-eda-v1.1.0-android.apk" ]; then
|
||
echo "📦 Android APK 已就绪"
|
||
fi
|
||
|
||
# Windows
|
||
if [ -d "mobile-eda-v1.1.0-windows-x64" ]; then
|
||
zip -r mobile-eda-v1.1.0-windows-x64.zip mobile-eda-v1.1.0-windows-x64/
|
||
echo "📦 Windows 压缩包已创建"
|
||
fi
|
||
|
||
# Linux
|
||
if [ -d "mobile-eda-v1.1.0-linux-x64" ]; then
|
||
tar -czf mobile-eda-v1.1.0-linux-x64.tar.gz mobile-eda-v1.1.0-linux-x64/
|
||
echo "📦 Linux 压缩包已创建"
|
||
fi
|
||
|
||
# Web
|
||
if [ -d "mobile-eda-v1.1.0-web" ]; then
|
||
zip -r mobile-eda-v1.1.0-web.zip mobile-eda-v1.1.0-web/
|
||
echo "📦 Web 压缩包已创建"
|
||
fi
|
||
|
||
cd ../..
|
||
|
||
echo ""
|
||
|
||
# 计算构建时间
|
||
END_TIME=$(date +%s)
|
||
DURATION=$((END_TIME - START_TIME))
|
||
|
||
# ============================================================================
|
||
# 构建完成
|
||
# ============================================================================
|
||
echo "========================================"
|
||
echo " ✅ 全平台构建完成!"
|
||
echo "========================================"
|
||
echo ""
|
||
echo "📦 输出文件:"
|
||
echo " Android APK: $OUTPUT_DIR/mobile-eda-v1.1.0-android.apk"
|
||
echo " Windows EXE: $OUTPUT_DIR/mobile-eda-v1.1.0-windows-x64/"
|
||
echo " Windows ZIP: $OUTPUT_DIR/mobile-eda-v1.1.0-windows-x64.zip"
|
||
echo " Linux: $OUTPUT_DIR/mobile-eda-v1.1.0-linux-x64/"
|
||
echo " Web: $OUTPUT_DIR/mobile-eda-v1.1.0-web/"
|
||
echo ""
|
||
echo "⏱️ 构建耗时:${DURATION}秒"
|
||
echo ""
|
||
echo "🚀 下一步:"
|
||
echo " 1. 测试各平台安装包"
|
||
echo " 2. 上传到应用商店"
|
||
echo " 3. 发布到官网"
|
||
echo ""
|