diff --git a/flutter_monisuo/BUILD.md b/flutter_monisuo/BUILD.md new file mode 100644 index 0000000..f9b1594 --- /dev/null +++ b/flutter_monisuo/BUILD.md @@ -0,0 +1,75 @@ +# Flutter 构建说明 + +## 环境配置 + +| 环境 | ENV | API 地址 | +|------|-----|----------| +| 开发 | `dev` | `http://localhost:5010` | +| 生产 | `prod` | `http://8.155.172.147:5010` | + +## Web 构建 + +```bash +# 开发环境(默认) +flutter run -d chrome + +# 生产构建 +flutter build web --release --dart-define=ENV=prod +``` + +输出目录:`build/web/` + +## Android 构建 + +```bash +# APK (用于测试分发) +flutter build apk --release --dart-define=ENV=prod + +# App Bundle (用于上架 Google Play) +flutter build appbundle --release --dart-define=ENV=prod + +# 分架构构建 (减小体积) +flutter build apk --release --dart-define=ENV=prod --split-per-abi +``` + +输出目录:`build/app/outputs/` + +## iOS 构建 + +```bash +# 需要 macOS +flutter build ios --release --dart-define=ENV=prod +``` + +## 常用参数 + +| 参数 | 说明 | +|------|------| +| `--release` | 生产模式,优化体积和性能 | +| `--debug` | 调试模式,含完整调试信息 | +| `--profile` | 性能分析模式 | +| `--dart-define=ENV=prod` | 设置生产环境 | +| `--split-per-abi` | 分架构构建 APK | +| `--wasm` | 启用 WebAssembly (实验性) | + +## 代码中判断环境 + +```dart +import 'core/constants/api_endpoints.dart'; + +if (ApiEndpoints.isProduction) { + // 生产环境逻辑 +} else { + // 开发环境逻辑 +} +``` + +## 部署 Web + +```bash +# 构建后上传 build/web 目录到服务器 +scp -r build/web/* user@server:/var/www/html/ + +# 或使用 nginx 托管 +# 将 build/web 目录配置为 nginx 静态资源目录 +``` diff --git a/flutter_monisuo/build/web/flutter_bootstrap.js b/flutter_monisuo/build/web/flutter_bootstrap.js index 70e93b5..16dd000 100644 --- a/flutter_monisuo/build/web/flutter_bootstrap.js +++ b/flutter_monisuo/build/web/flutter_bootstrap.js @@ -37,6 +37,6 @@ _flutter.buildConfig = {"engineRevision":"e4b8dca3f1b4ede4c30371002441c88c12187e _flutter.loader.load({ serviceWorkerSettings: { - serviceWorkerVersion: "3100103420" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */ + serviceWorkerVersion: "2084931057" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */ } }); diff --git a/flutter_monisuo/build/web/main.dart.js b/flutter_monisuo/build/web/main.dart.js index 385684e..f201fc3 100644 --- a/flutter_monisuo/build/web/main.dart.js +++ b/flutter_monisuo/build/web/main.dart.js @@ -93222,7 +93222,7 @@ return A.J($async$nV,r)}} A.CF.prototype={ J(a){var s=null,r=this.a8B() return A.b7l(new A.zA(new A.Et(A.atZ(s,s,s,s,s,B.ap,s,s,s,s,B.a7v,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s),B.Jn,this.ga8q(),s),s),r)}, -a8B(){var s,r=null,q=new A.AI(),p=A.b3D("http://localhost:5010",B.qF,A.aD(["Content-Type","application/json"],t.N,t.z),B.qF),o=new A.QF(A.c([B.Ll],t.i6)) +a8B(){var s,r=null,q=new A.AI(),p=A.b3D("http://8.155.172.147:5010",B.qF,A.aD(["Content-Type","application/json"],t.N,t.z),B.qF),o=new A.QF(A.c([B.Ll],t.i6)) o.a2(o,B.WA) s=new A.aer($,o,$,new A.ahG(51200),!1) s.Ya$=p diff --git a/flutter_monisuo/lib/core/network/dio_client.dart b/flutter_monisuo/lib/core/network/dio_client.dart index 48faecf..8fede32 100644 --- a/flutter_monisuo/lib/core/network/dio_client.dart +++ b/flutter_monisuo/lib/core/network/dio_client.dart @@ -1,11 +1,12 @@ import 'package:dio/dio.dart'; +import '../constants/api_endpoints.dart'; import '../storage/local_storage.dart'; import 'api_exception.dart'; import 'api_response.dart'; /// 网络配置常量 class NetworkConfig { - static const String baseUrl = 'http://localhost:5010'; + static const String baseUrl = ApiEndpoints.baseUrl; static const Duration connectTimeout = Duration(seconds: 30); static const Duration receiveTimeout = Duration(seconds: 30); }