Skip to content

Repository files navigation

EasyNVR App

EasyNVR 的 Flutter 客户端,支持连接 EasyNVR 服务、设备登录、实时预览、录像回放和基础云台控制。

开发环境

当前项目使用并验证于:

  • Flutter 3.47.4(stable)
  • Dart 3.13.3
  • Android Studio 最新稳定版及 Android SDK
  • Xcode 现行稳定版(仅 macOS/iOS 构建需要)
  • CocoaPods(仅 iOS 构建需要)

平台要求:Android 使用 Flutter 当前默认的 Android SDK、NDK 和 minSdk 配置;iOS 最低 iOS 15.0。

检查环境:

flutter doctor -v
flutter --version

获取代码和依赖

git clone <your-public-repository-url>
cd easynvr_app
flutter pub get
dart run build_runner build

代码生成涉及 Riverpod、Freezed 和 JSON 序列化模型。修改带有注解的 Dart 文件后,需要重新运行 build_runner。

配置

应用通过 --dart-define 配置运行环境,配置定义位于 lib/core/config/app_env.dart:

参数 说明 默认值
APP_ENV dev、staging 或 prod dev
APP_NAME 应用显示名称 EasyNVR
API_BASE_URL EasyNVR API 地址 平台默认地址
PLATFORM_BASE_URL 平台服务地址 https://www.tsingsee.cn
ENABLE_NETWORK_LOG 是否输出网络日志 true

示例:

flutter run \
  --dart-define=APP_ENV=dev \
  --dart-define=APP_NAME=EasyNVR \
  --dart-define=API_BASE_URL=https://nvr.example.com \
  --dart-define=ENABLE_NETWORK_LOG=true

不要把服务端密钥、签名文件或生产环境私密配置提交到仓库。

本地运行

flutter devices
flutter run

指定设备运行:

flutter run -d <device-id>

iOS 首次运行:

flutter pub get
cd ios
pod install
cd ..
flutter run -d <ios-device-id>

检查和生成

dart run build_runner build
flutter analyze
flutter test

持续监听代码生成:

dart run build_runner watch

打包 Android

Debug APK:

flutter build apk --debug

Release APK:

flutter build apk --release \
  --dart-define=APP_ENV=prod \
  --dart-define=API_BASE_URL=https://nvr.example.com

产物位于 build/app/outputs/flutter-apk/。发布到 Google Play 推荐构建 App Bundle:

flutter build appbundle --release \
  --dart-define=APP_ENV=prod \
  --dart-define=API_BASE_URL=https://nvr.example.com

产物位于 build/app/outputs/bundle/release/。正式签名前,在 android/key.properties 配置 keystore。该文件和 keystore 不应提交到公开仓库;没有签名配置时,项目仅使用 debug 签名,适合本地验证,不适合发布。

打包 iOS

flutter build ios --release \
  --dart-define=APP_ENV=prod \
  --dart-define=API_BASE_URL=https://nvr.example.com

需要生成可上传 App Store Connect 的归档包时:

  1. 使用 Xcode 打开 ios/Runner.xcworkspace。
  2. 在 Signing & Capabilities 中配置 Team、Bundle Identifier 和签名证书。
  3. 选择 Any iOS Device (arm64),执行 Product > Archive。
  4. 在 Organizer 中校验并上传归档包。

项目结构

lib/
├── core/       # 配置、HTTP、模型、Provider、路由和主题
├── pages/      # 页面和业务界面
├── services/   # 本地存储等基础服务
└── widgets/    # 通用组件
android/        # Android 工程
ios/            # iOS 工程
assets/         # 图片等资源

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages