You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

202 lines
7.1 KiB

name: eaimar
description: "Eaimar - AI Voice Assistant."
publish_to: "none"
version: 1.0.2+21
environment:
sdk: ">=3.3.0 <4.0.0"
# 只支持 Android 和 iOS 平台
platforms:
android:
ios:
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
cupertino_icons: ^1.0.6
flutter_shaders: ^0.0.6
get: ^4.7.2
in_app_purchase: ^3.3.0
json_annotation: ^4.9.0
get_storage: ^2.1.1
http: ^1.3.0
flutter_screenutil: ^5.9.0
flutter_staggered_grid_view: ^0.7.0
path_provider: ^2.1.5
audio_session: ^0.1.18
flutter_markdown: ^0.7.7+1
markdown: ^7.1.1
fleather: 1.26.0
parchment: ^1.25.1
htmltopdfwidgets: ^1.1.0
wifi_iot: ^0.3.19+2
flutter_intro: ^3.4.0
permission_handler: ^12.0.1
web_socket_channel: ^2.4.0
flutter_dotenv: ^5.1.0
synchronized: ^3.1.0
intl: ^0.20.2
lunar: ^1.7.2 # 农历/节日(首页日历面板)
crypto: ^3.0.3
flutter_tts: ^4.2.2
logger: ^2.0.2+1
flutter_blue_plus: ^1.35.5
just_audio: ^0.9.36
webview_flutter: ^4.13.0
flutter_easyloading: ^3.0.5
package_info_plus: ^8.3.0
file_picker: ^10.2.0
haptic_feedback: ^0.5.1+1
tencentcloud_cos_sdk_plugin: 1.2.8
photo_view: ^0.15.0
window_size:
git:
url: https://github.com/google/flutter-desktop-embedding.git
path: plugins/window_size
ref: 6c66ad23ee79749f30a8eece542cf54eaf157ed8
flutter_local_notifications: ^18.0.1
# zonedSchedule 排定时提醒必需:flutter_local_notifications 只接受 tz.TZDateTime,
# 没有这两个依赖,拾忆的「提前 N 分钟提醒」一行都写不了。
# timezone 提供时区数据库,flutter_timezone 用来问系统「本机在哪个时区」。
timezone: ^0.9.4
flutter_timezone: ^3.0.1
device_info_plus: ^11.5.0
uuid: ^4.3.3
record: ^6.0.0
share_plus: ^12.0.1
image_picker: ^1.1.2
audio_waveforms: ^1.3.0
font_awesome_flutter: ^10.8.0
lottie: ^3.3.1
flutter_svg: ^2.0.10+1
app_settings: 5.2.0
fluwx: ^5.7.1
# 蓝讯方案设备(AI手机支架 / AI Pencil)蓝牙连接 + Opus 录音流。
# 源自 echomeet 项目 local_plugins/recorder_holder,原样拉取未改协议实现。
echomeet_device_sdk:
path: local_plugins/recorder_holder/sdk
# 插件本体。⚠️ 必须显式声明:`lib/devices/holder/holder_ota_port.dart` 直接
# import 了它的 OTA 实现(`recorder_holder_ota.dart`),只靠 sdk 的传递依赖
# 拿到是不作数的 —— 上游哪天不再依赖它,这边就编不过了。
recorder_holder:
path: local_plugins/recorder_holder
tobias: ^5.2.0 # 支付宝SDK
url_launcher: ^6.3.1
in_app_purchase_android: ^0.5.0 # Play Billing 8.0(Google Play 2026-08-31 起的最低要求)
app_links:
# 2026-09-24 钉死:pub 重解析后 firebase_auth 6.7.0 拉进的 firebase-auth 24.2.0 原生库要求 Kotlin 2.3,
# 工程仍是 2.1.10,Android 编不过("Module was compiled with an incompatible version of Kotlin")。
# 要升 firebase 先把 android/settings.gradle.kts 的 kotlin 版本一起抬上去。
firebase_core: 4.13.0
firebase_auth: 6.5.7
google_sign_in: ^6.2.2
sign_in_with_apple: ^7.0.1
flutter_image_compress: ^2.4.0
common_utils: ^2.1.0
image_gallery_saver_plus: ^4.0.1
dio: ^5.8.0+1
sqflite: ^2.4.2
path: ^1.9.1
pip: ^0.0.3
connectivity_plus: ^6.1.5 # 网络连接检测依赖
wakelock_plus: ^1.2.8 # 固件升级期间保持屏幕常亮
speech:
path: local_plugins/speech
azure_speech:
path: local_plugins/azure_speech
chat_storage:
path: local_plugins/chat_storage
# ⚠️ 下面三个 Dart 侧已无引用,但**原生侧仍被别的插件依赖**,不能删:
# - device_jieli:recorder_holder 的 iOS Package.swift 引用它 vendor 的 JLAudioUnitKit(支架 Opus 解码)
# - classic_bluetooth:azure_speech 的 iOS Package.swift 引用它
# - test:agent_service 的 iOS Package.swift 引用它
# 要真正摘掉得先把那几个 xcframework 搬进使用方,属于原生改动,本轮不做。
device_jieli:
path: local_plugins/device_jieli
# Smartcar 车载香薰(杰理方案)的 BLE 链路:自持 GATT,在同一条连接上跑杰理 RCSP 认证
# (AE00)与 C2 私有通道(ABC0)。iOS 通过 device_jieli 暴露的 jl-blekit 产品复用同一份
# JL_BLEKit 动态库。Android 目前是桩。
device_smartcar:
path: local_plugins/device_smartcar
classic_bluetooth:
path: local_plugins/classic_bluetooth
test:
path: local_plugins/test
bluetooth_manager:
path: local_plugins/bluetooth_manager
# 设备插件契约(纯 Dart):厂商插件 / 会话 / 能力 / 音频 / OTA
device_plugin_interface:
path: local_plugins/device_plugin_interface
# 恒玄(BES)固件 OTA 升级:自包含 BES OTA SDK(Android Java / iOS ObjC)与原生桥接。
# ⚠️ 它自管到耳机的 SPP 连接,不复用 bluetooth_manager 的连接——多数固件同时
# 只接受一条 SPP 链路,升级前必须先 disconnectDevice() 让路,见 ota_upgrade_controller。
bes_ota_manager:
path: local_plugins/bes_ota_manager
# deepvoice 的通话/面对面/同声翻译 native 实现(ASR+翻译+TTS 端到端),
# 直接吃 bluetooth_manager 的 translationCallback,恒玄耳机链路专用
# ⚠️ 暂时注释:它还依赖 deepvoice 的 audio_recorder 插件,没搬过来会导致
# Gradle 报 "Project with path ':audio_recorder' could not be found"。
# 等下一步整体接入时,连同 audio_recorder 一起搬并解决依赖后再打开。
# asr_tr_tts_manager:
# path: local_plugins/asr_tr_tts_manager
agent_service:
path: local_plugins/agent_service
music_service:
path: local_plugins/music_service
amap_service:
path: local_plugins/amap_service
location_service:
path: local_plugins/location_service
user_portrait:
path: local_plugins/user_portrait
qq_music:
path: local_plugins/qq_music
floating_ui_plugin:
path: local_plugins/floating_ui_plugin
encrypt: ^5.0.3
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^2.0.0
build_runner: ^2.3.3 # 用于生成代码 flutter pub run build_runner build
json_serializable: ^6.6.0 # 用于自动生成代码
flutter:
uses-material-design: true
shaders:
- shaders/mic_flow.frag
assets:
# - assets/images/headphone_light.png
# - assets/images/headphone_dark.png
- assets/images/robot_light.png
- assets/images/glasses_light.png
- assets/images/agents/
- assets/images/explore.png
- assets/images/explore1.png
- assets/images/explore2.jpg
- assets/images/mine-background.png
- assets/images/app_icon.png
- assets/fonts/NotoSansSC-Regular.ttf
- assets/lottie/
- assets/js/
- assets/audio/silence_1s.wav
- assets/images/defaultPicture.png
- assets/images/defaultPicture.jpg
# 设备品类实拍图(「添加设备 → 选择设备」页和设备页展示用)
- assets/images/devices/
- assets/images/qqmusic.png
- assets/images/music.png
- assets/weather/
- .env
- .mcp.json
# 添加 tobias 配置
tobias:
url_scheme: eaimar # 你的应用的 URL Scheme