#!/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 ""