diff --git a/iOS_macOS_Developer_Guide.md b/iOS_macOS_Developer_Guide.md index c50cb87c..a0c64324 100644 --- a/iOS_macOS_Developer_Guide.md +++ b/iOS_macOS_Developer_Guide.md @@ -6,6 +6,17 @@ --- +## 文档更新日志 + +| 日期 | 版本 | 变更内容 | +|---|---|---| +| 2026-06-02 | v7 | **重大变更**:pubspec.yaml 拆分为双模板(pubspec.ohos.yaml + pubspec.macos.yaml),pubspec.yaml 不再提交到 Git;新增三方库变更通知机制;新增 setup_pubspec.ps1 脚本 | +| 2026-06-02 | v6 | 鸿蒙端 pubspec.yaml 同步 bitsdojo_window → window_manager 迁移;更新 file_picker 本地包版本注释(v8.3.7→v11.0.0-ohos.1);更新 speech_to_text(^7.0.0→^7.4.0)、live_activities(^2.0.0→^2.4.9) 远程版本号;补充 dependency_overrides 中 bitsdojo_window_windows 移除说明 | +| 2026-06-01 | v5 | 新增 §2.6 pub cache 补丁说明;标记 bitsdojo_window 迁移完成;file_picker 升级到 12.x | +| 2026-05-30 | v4 | 初版完整指南 | + +--- + ## 一、环境准备与项目拉取 ### 1.1 Flutter SDK 选择 @@ -35,15 +46,21 @@ git checkout feature/xxx git checkout main ``` -### 1.3 修改 pubspec.yaml 并安装依赖 +### 1.3 生成 pubspec.yaml 并安装依赖 -MacBook Pro 端需要将 `pubspec.yaml` 中的本地包引用替换为远程版本号(详见 §2.2)。 +> ⚠️ **`pubspec.yaml` 不再提交到 Git**。项目使用双模板机制: +> - `pubspec.ohos.yaml` — 鸿蒙端模板(使用本地 packages/ 目录) +> - `pubspec.macos.yaml` — MacBook Pro 端模板(使用远程版本号) +> - `pubspec.yaml` — 由脚本自动生成,已加入 `.gitignore` ```bash # 1. 确认使用官方 Flutter SDK flutter --version # 应显示官方版本,非 flutter-ohos -# 2. 修改 pubspec.yaml(参见 §2.2 替换清单) +# 2. 运行脚本生成 pubspec.yaml(MacBook Pro 端) +.\tools\setup_pubspec.ps1 -Platform macos +# 或自动检测平台 +.\tools\setup_pubspec.ps1 # 3. 获取依赖 flutter pub get @@ -53,23 +70,53 @@ flutter build ios --no-codesign # 5. macOS 编译验证 flutter build macos +``` -# 5. 防止误提交 pubspec.yaml -git stash push -m "macOS-local-pubspec" pubspec.yaml +鸿蒙端开发者: +```bash +# 1. 确认使用 flutter-ohos SDK +flutter --version # 应显示 ohos 版本 + +# 2. 运行脚本生成 pubspec.yaml(鸿蒙端) +.\tools\setup_pubspec.ps1 -Platform ohos + +# 3. 获取依赖 +flutter pub get ``` --- -## 二、pubspec.yaml 与三方库 +## 二、pubspec.yaml 双模板机制 -### 2.1 MacBook Pro 端的核心原则 +### 2.1 架构概述 + +> **`pubspec.yaml` 不再提交到 Git**,两端各自维护独立的模板文件。 + +``` +项目根目录/ +├── pubspec.ohos.yaml ← 鸿蒙端模板(tracked,使用本地 packages/ 目录) +├── pubspec.macos.yaml ← MacBook Pro 端模板(tracked,使用远程版本号) +├── pubspec.yaml ← 本地生成文件(.gitignore,不提交) +└── tools/ + └── setup_pubspec.ps1 ← 自动生成脚本 +``` + +**为什么这样做?** + +之前鸿蒙端和 MacBook Pro 端共用一个 `pubspec.yaml`,MacBook Pro 端每次 `git pull` 后需要手动替换 82 行本地包引用,容易出错且经常互相覆盖。 + +现在: +- 鸿蒙端模板 `pubspec.ohos.yaml` 包含所有 `path: packages/` 引用 +- MacBook Pro 端模板 `pubspec.macos.yaml` 使用远程版本号 +- `pubspec.yaml` 由脚本自动生成,两边都不提交 + +### 2.2 MacBook Pro 端的核心原则 > **MacBook Pro 端不需要 `packages/` 目录,直接使用远程三方库即可。** -项目 `pubspec.yaml` 中的本地包引用(`path: packages/xxx`)是为鸿蒙端准备的。 -MacBook Pro 端使用官方 Flutter SDK,需要将这些本地包引用替换为远程版本号。 +`pubspec.macos.yaml` 已将所有本地包引用替换为远程版本号,无需手动修改。 -**为什么不能直接用本地包?** +**为什么不能直接用鸿蒙端的本地包?** 本地包中包含 `TargetPlatform.ohos` 引用(鸿蒙SDK新增的枚举值),官方 SDK 没有此值,会导致编译报错: @@ -89,154 +136,136 @@ Error: The getter 'ohos' isn't defined for the class 'TargetPlatform' **解决方案**:MacBook Pro 端使用远程版本,远程版本不含 `TargetPlatform.ohos`,编译正常。 -### 2.2 MacBook Pro 端 pubspec.yaml 修改指南 +### 2.3 双模板差异对照表 -克隆项目后,需要修改 `pubspec.yaml`,将本地包引用替换为远程版本号。 - -#### 2.2.1 dependencies 区域 — 需要替换的包 - -将以下包从 `path: packages/xxx` 改为版本号: - -```yaml -# ❌ 原始写法(鸿蒙端) - shared_preferences: - path: packages/shared_preferences - -# ✅ MacBook Pro 端改为远程版本 - shared_preferences: ^2.5.5 -``` - -**完整替换清单:** - -| 包名 | 远程版本号 | 说明 | +| 区域 | pubspec.ohos.yaml(鸿蒙端) | pubspec.macos.yaml(MacBook Pro端) | |---|---|---| -| shared_preferences | ^2.5.5 | 轻量KV持久化 | -| flutter_secure_storage | ^10.2.0 | 加密安全存储 | -| hive_flutter | ^1.1.0 | Hive Flutter适配 | -| path_provider | ^2.1.5 | 系统目录路径获取 | -| package_info_plus | ^10.1.0 | 应用包信息读取 | -| connectivity_plus | ^7.1.1 | 网络连接状态监听 | -| device_info_plus | ^13.1.0 | 设备硬件信息读取 | -| permission_handler | ^12.0.1 | 运行时权限请求 | -| flutter_local_notifications | ^21.0.0 | 本地推送通知 | -| url_launcher | ^6.3.2 | 打开外部URL/应用 | -| app_links | ^7.0.0 | 深度链接处理 | -| home_widget | ^0.9.1 | iOS/Android桌面小组件 | -| file_picker | ^12.0.0-beta.5 | 文件选择器(⚠️ 12.x兼容win32 6.x,见§2.6) | -| image_picker | ^1.2.2 | 相机/相册选图 | -| share_plus | ^13.1.0 | 系统分享面板 | -| gal | ^2.3.0 | 保存图片/视频到相册 | -| pro_image_editor | ^12.4.4 | 图片编辑器核心(⚠️ 见§2.5) | -| flutter_quill | ^11.5.0 | Quill富文本编辑器 | -| flex_color_picker | ^3.8.0 | HSL颜色选择器 | -| flutter_image_compress | ^2.4.0 | 图片压缩 | -| wakelock_plus | ^1.4.0 | 屏幕常亮控制 | -| audioplayers | ^6.5.0 | 音频播放 | -| record | ^6.0.0 | 录音 | -| video_compress | ^3.1.2 | 视频压缩 | -| video_player | ^2.10.0 | 视频播放 | -| local_auth | ^3.0.1 | 生物识别认证 | -| sensors_plus | ^6.1.0 | 加速度传感器 | -| battery_plus | ^7.0.0 | 电池状态监听 | -| network_info_plus | ^8.1.0 | WiFi网络信息 | -| flutter_webrtc | ^1.4.0 | WebRTC音视频通信 | -| flutter_blue_plus | ^2.1.0 | 蓝牙BLE通信 | -| flutter_nfc_kit | ^3.6.0 | NFC读写 | -| mobile_scanner | ^7.1.4 | 二维码/条形码扫描 | -| wifi_iot | ^0.3.19 | WiFi IoT设备连接 | -| nearby_service | ^0.2.1 | 近场设备发现+通信 | -| sqflite | ^2.4.1 | SQLite轻量数据库 | -| receive_sharing_intent | git引用 | 接收外部分享内容(⚠️ gitcode引用,见§2.5) | -| workmanager | ^0.9.0 | 后台任务调度 | -| flutter_tts | ^4.2.0 | TTS文本转语音朗读 | -| speech_to_text | ^7.0.0 | 语音转文字 | -| live_activities | ^2.0.0 | 灵动岛/实时活动 | -| flutter_vibrate | git引用 | 跨平台触觉反馈(⚠️ gitcode引用,见§2.5) | -| bitsdojo_window | - | ❌ 已移除,替换为 window_manager(lib/代码已迁移完成) | -| window_manager | ^0.5.1 | 桌面端窗口管理(替代 bitsdojo_window,已集成) | +| shared_preferences | `path: packages/shared_preferences` | `^2.5.5` | +| flutter_secure_storage | `path: packages/flutter_secure_storage` | `^10.2.0` | +| hive_flutter | `path: packages/hive_flutter` | `^1.1.0` | +| path_provider | `path: packages/path_provider` | `^2.1.5` | +| package_info_plus | `path: packages/package_info_plus` | `^10.1.0` | +| connectivity_plus | `path: packages/connectivity_plus` | `^7.1.1` | +| device_info_plus | `path: packages/device_info_plus` | `^13.1.0` | +| permission_handler | `path: packages/permission_handler` | `^12.0.1` | +| flutter_local_notifications | `path: packages/flutter_local_notifications` | `^21.0.0` | +| url_launcher | `path: packages/url_launcher` | `^6.3.2` | +| app_links | `path: packages/app_links` | `^7.0.0` | +| home_widget | `git: gitcode.com/...` | `^0.9.1` | +| file_picker | `path: packages/file_picker` | `^12.0.0-beta.5` | +| image_picker | `path: packages/image_picker` | `^1.2.2` | +| share_plus | `path: packages/share_plus` | `^13.1.0` | +| gal | `path: packages/gal` | `^2.3.0` | +| flutter_quill | `path: packages/flutter_quill` | `^11.5.0` | +| flex_color_picker | `path: packages/flex_color_picker` | `^3.8.0` | +| flutter_image_compress | `path: packages/flutter_image_compress` | `^2.4.0` | +| wakelock_plus | `path: packages/wakelock_plus` | `^1.4.0` | +| audioplayers | `path: packages/audioplayers` | `^6.5.0` | +| record | `path: packages/record` | `^6.0.0` | +| video_compress | `path: packages/video_compress` | `^3.1.2` | +| video_player | `path: packages/video_player` | `^2.10.0` | +| local_auth | `path: packages/local_auth` | `^3.0.1` | +| sensors_plus | `path: packages/sensors_plus` | `^6.1.0` | +| battery_plus | `path: packages/battery_plus` | `^7.0.0` | +| network_info_plus | `path: packages/network_info_plus` | `^8.1.0` | +| flutter_webrtc | `path: packages/flutter_webrtc` | `^1.4.0` | +| flutter_blue_plus | `path: packages/flutter_blue_plus` | `^2.1.0` | +| flutter_nfc_kit | `path: packages/flutter_nfc_kit` | `^3.6.0` | +| mobile_scanner | `path: packages/mobile_scanner` | `^7.1.4` | +| wifi_iot | `path: packages/wifi_iot` | `^0.3.19` | +| nearby_service | `path: packages/nearby_service` | `^0.2.1` | +| sqflite | `path: packages/sqflite` | `^2.4.1` | +| workmanager | `path: packages/workmanager` | `^0.9.0` | +| flutter_tts | `path: packages/flutter_tts` | `^4.2.0` | +| speech_to_text | `path: packages/speech_to_text` | `^7.4.0` | +| live_activities | `path: packages/live_activities` | `^2.4.9` | +| dependency_overrides | 40+ 行(含本地包覆盖 + ohos 子包) | 4 行(仅版本号覆盖 + win32) | -#### 2.2.2 dependency_overrides 区域 — 整体替换 +### 2.4 ⚠️ 新增三方库变更流程(必读) -MacBook Pro 端不需要 `dependency_overrides` 中的本地包覆盖,改为仅保留版本号覆盖: - -```yaml -# MacBook Pro 端的 dependency_overrides(精简版) -dependency_overrides: - meta: ^1.17.0 - web: ^1.1.0 - timezone: ^0.11.0 - win32: ^6.0.1 - # 删除所有 path: packages/xxx 条目 -``` - -#### 2.2.3 快速替换脚本 - -```bash -# 在项目根目录执行,自动将本地包引用替换为远程版本 -# ⚠️ 执行前请备份 pubspec.yaml - -# 方式1:手动替换(推荐,更可控) -# 用编辑器打开 pubspec.yaml,搜索 "path: packages/" 逐个替换 - -# 方式2:使用 sed 批量替换(macOS 终端) -# 将所有 "path: packages/xxx" 行替换为对应版本号 -# 注意:此脚本仅作参考,请根据实际版本号调整 -``` - -#### 2.2.4 ⚠️ 重要:不要提交修改后的 pubspec.yaml - -```bash -# 修改 pubspec.yaml 后,使用 git stash 暂存,不要提交 -git stash push -m "macOS-local-pubspec" pubspec.yaml - -# 需要恢复时 -git stash pop - -# 或者将修改后的 pubspec.yaml 加入 .git/info/exclude -echo "pubspec.yaml" >> .git/info/exclude -``` - -> **铁律**:MacBook Pro 端对 `pubspec.yaml` 的修改**绝对不能提交到 Git**。 -> 仓库中的 `pubspec.yaml` 必须保持鸿蒙端的本地包引用配置。 - -### 2.3 已迁移至远程版本的纯Dart包 - -以下包已从本地包迁移为远程版本依赖,两端无需额外操作: +> **铁律:新增三方库时,必须同时更新两个模板 + 本文档。** ``` -badges ^3.2.0 | catcher_2 ^2.1.9 | flutter_card_swiper ^7.2.0 -stupid_simple_sheet ^0.9.1+1 | liquid_glass_easy ^1.1.1 -liquid_glass_widgets ^0.11.0 | flutter_shaders_ui ^0.1.0 -flutter_spritesheet_animation ^1.0.1 | image_size_getter ^2.4.1 -extended_image ^10.0.1 | photo_view ^0.15.0 +新增三方库流程: +1. 在 pubspec.ohos.yaml 添加依赖(鸿蒙端优先) +2. 在 pubspec.macos.yaml 添加对应远程版本 +3. 在本文档 §2.3 差异对照表添加一行 +4. 在本文档顶部更新日志记录变更 +5. 在 CHANGELOG.md 记录变更 +6. git push 后通知另一端开发者 +7. 另一端开发者: git pull → 运行 setup_pubspec.ps1 → flutter pub get ``` -### 2.4 MacBook Pro 端完整操作流程 +**鸿蒙端新增本地化包时额外步骤:** +- 将包放入 `packages/` 目录 +- 在 `pubspec.ohos.yaml` 的 `dependency_overrides` 中添加覆盖 +- 在 `pubspec.macos.yaml` 中使用远程版本号 +- 更新本文档 §2.3 差异对照表 + +**升级三方库版本时:** +- 在对应模板中更新版本号 +- 如果是鸿蒙本地包升级,同步更新 `pubspec.ohos.yaml` 中的版本注释 +- 更新本文档 §2.3 差异对照表中的版本号 + +### 2.5 setup_pubspec.ps1 脚本说明 + +```powershell +# 鸿蒙端 +.\tools\setup_pubspec.ps1 -Platform ohos + +# MacBook Pro 端 +.\tools\setup_pubspec.ps1 -Platform macos + +# 自动检测(根据 flutter --version 或 packages/ 目录是否存在) +.\tools\setup_pubspec.ps1 +``` + +脚本功能: +- 将对应模板复制为 `pubspec.yaml` +- 自动备份现有 `pubspec.yaml` → `pubspec.yaml.bak` +- 验证模板内容(鸿蒙端检查 `path: packages/`,MacBook Pro 端检查无本地包引用) +- 输出后续操作提示 + +### 2.6 MacBook Pro 端完整操作流程 ```bash # 1. 克隆仓库 git clone <仓库URL> xianyan cd xianyan -# 2. 修改 pubspec.yaml(替换本地包为远程版本) -# 参见 §2.2 的替换清单 +# 2. 生成 pubspec.yaml +.\tools\setup_pubspec.ps1 -Platform macos # 3. 获取依赖 flutter pub get -# 4. 编译验证 +# 4. 应用 pub cache 补丁(见 §2.8) +bash scripts/patch_pub_cache.sh + +# 5. 编译验证 flutter build ios --no-codesign flutter build macos - -# 6. 防止误提交 pubspec.yaml -git stash push -m "macOS-local-pubspec" pubspec.yaml -# 或 -echo "pubspec.yaml" >> .git/info/exclude ``` -### 2.5 特殊包说明 +### 2.7 鸿蒙端完整操作流程 -#### 2.5.1 pro_image_editor(已迁移至远程版本) +```bash +# 1. 克隆仓库 +git clone <仓库URL> xianyan +cd xianyan + +# 2. 确保 packages/ 目录已准备好(从 zip 解压或 git submodule) + +# 3. 生成 pubspec.yaml +.\tools\setup_pubspec.ps1 -Platform ohos + +# 4. 获取依赖 +flutter pub get +``` + +### 2.8 特殊包说明 + +#### 2.8.1 pro_image_editor(已迁移至远程版本) `pro_image_editor` 已从本地包迁移为远程版本 `^12.4.4`,MacBook Pro 端直接使用远程版本即可: @@ -249,7 +278,7 @@ echo "pubspec.yaml" >> .git/info/exclude > 远程版本可能不包含此类型,需要检查兼容性。 > 如遇编译错误,可恢复使用本地包版本(`path: packages/pro_image_editor`)。 -#### 2.5.2 file_picker(API 变更 + win32 6.x 兼容) +#### 2.8.2 file_picker(API 变更 + win32 6.x 兼容) `file_picker` 已从 `^11.0.0` 升级为 `^12.0.0-beta.5`,原因: @@ -268,15 +297,19 @@ final result = await FilePicker.pickFiles(); - `file_picker ^12.0.0-beta.5` 兼容 `win32 ^6.0.1`,解决 macOS 构建失败 - ⚠️ 12.x 为 beta 版本,如遇问题可回退到 11.x(需同时降级 win32 override,见§2.6) -项目代码已更新为新版 API。鸿蒙端如使用本地包版本(`file_picker ^8.x`), -需注意 API 差异,或升级本地包到 `^11.x`。 +项目代码已更新为新版 API。鸿蒙端本地包版本已升级为 `11.0.0-ohos.1`(基于 file_picker 11.x 适配), +API 已与远程版本对齐,无需额外处理。 -#### 2.5.3 flutter_secure_storage(版本升级) +#### 2.8.3 flutter_secure_storage(版本差异说明) -`flutter_secure_storage ^10.2.0` 的 Windows 平台实现兼容 `win32 ^6.0.1`, +MacBook Pro 端使用远程版本 `^10.2.0`,其 Windows 平台实现兼容 `win32 ^6.0.1`, 解决了之前版本与 `win32 6.x` 的编译冲突。 -#### 2.5.4 receive_sharing_intent(gitcode 引用) +> **注意**:鸿蒙端本地包版本为 `9.2.4-ohos.1`(基于 9.x 适配), +> 与 MacBook Pro 端远程版本 `10.2.0` 存在主版本号差异。 +> 两端 API 兼容,`lib/` 代码无需特殊处理。 + +#### 2.8.4 receive_sharing_intent(gitcode 引用) `receive_sharing_intent` 在 pub.dev 上的版本与鸿蒙端不兼容,MacBook Pro 端需使用 gitcode 引用: @@ -291,7 +324,7 @@ final result = await FilePicker.pickFiles(); > **注意**:gitcode 版本的 `SharedMediaFile` 构造函数可能包含 `ohosPath` 等鸿蒙特有参数, > 官方 SDK 不存在这些参数。项目代码中已通过 `pu.isOhos` 条件分支隔离。 -#### 2.5.5 flutter_vibrate(gitcode 引用) +#### 2.8.5 flutter_vibrate(gitcode 引用) `flutter_vibrate` 在 pub.dev 上的版本不支持鸿蒙,MacBook Pro 端需使用 gitcode 引用: @@ -302,7 +335,7 @@ final result = await FilePicker.pickFiles(); url: https://gitcode.com/openharmony-sig/fluttertpc_flutter_vibrate.git ``` -#### 2.5.6 home_widget(pub.dev 远程版本) +#### 2.8.6 home_widget(pub.dev 远程版本) `home_widget` 的 gitcode 版本依赖 `path_provider` 的 git 版本,会与远程 `path_provider` 冲突。 MacBook Pro 端使用 pub.dev 版本 `^0.9.1`,鸿蒙端的 `ohosName` 参数通过 `pu.isOhos` + `dynamic` 调用隔离: @@ -312,20 +345,20 @@ MacBook Pro 端使用 pub.dev 版本 `^0.9.1`,鸿蒙端的 `ohosName` 参数 home_widget: ^0.9.1 ``` -### 2.6 ⚠️ pub cache 补丁(MacBook Pro 端必读) +### 2.9 ⚠️ pub cache 补丁(MacBook Pro 端必读) > **关键问题**:`dependency_overrides` 中 `win32: ^6.0.1` 导致部分依赖 `win32 ^5.x` 的三方包编译失败。 > 这些三方包的 Windows 平台代码在 macOS 构建时也会被编译(Dart 编译器不区分平台)。 > 需要手动修补 pub cache 中的文件,使它们兼容 win32 6.x API。 -#### 2.6.1 需要修补的包 +#### 2.9.1 需要修补的包 | 包名 | 版本 | 问题 | 修补文件 | |---|---|---|---| | quill_native_bridge_windows | 0.0.2 | 使用 win32 5.x API(`TEXT()`、`OpenClipboard(NULL)==FALSE` 等) | `lib/quill_native_bridge_windows.dart` + `lib/src/clipboard_html_format.dart` | | flutter_vibrate | gitcode | `TARGET_OS_SIMULATOR` 在 Xcode 16+/Swift 6 中不可用 | `ios/Classes/SwiftVibratePlugin.swift` | -#### 2.6.2 补丁应用流程 +#### 2.9.2 补丁应用流程 ```bash # 1. 确保 flutter pub get 已执行 @@ -341,7 +374,7 @@ flutter build ios --no-codesign > ⚠️ `flutter clean` 或 `flutter pub cache repair` 会清除补丁,需重新执行步骤 2。 -#### 2.6.3 补丁脚本 +#### 2.9.3 补丁脚本 在项目根目录创建 `scripts/patch_pub_cache.sh`(已包含在仓库中),内容如下: @@ -662,7 +695,7 @@ echo "🎉 All patches applied!" echo "⚠️ Note: Run this script again after 'flutter clean' or 'flutter pub cache repair'" ``` -#### 2.6.4 win32 5.x → 6.x API 迁移参考 +#### 2.9.4 win32 5.x → 6.x API 迁移参考 如需修补其他使用 win32 的三方包,以下是关键 API 变更: @@ -1010,10 +1043,14 @@ iOS/macOS 端这些检测不会执行(`isOhos` 为 false),无需关心。 ### 5.4 packages 目录说明 -- `packages/` 目录存放鸿蒙适配的本地三方库,已在 `.gitignore` 中排除 +- `packages/` 目录存放鸿蒙适配的本地三方库,已在 `.gitignore` 中排除(`/packages/`) - MacBook Pro 端需要 `packages/pro_image_editor/`(含魔改的 `CanvasStyleModel`),从 zip 解压获取 - 其他本地包 MacBook Pro 端使用远程版本,无需放在 `packages/` 目录 - 鸿蒙开发者需手动维护本地 `packages/` 目录 +- `packages/bitsdojo_window_windows/` 已随 bitsdojo_window 移除而废弃,可安全删除 +- ⚠️ `pubspec.yaml` 已加入 `.gitignore`,不再提交到 Git +- 鸿蒙端模板:`pubspec.ohos.yaml`,MacBook Pro 端模板:`pubspec.macos.yaml` +- 使用 `tools/setup_pubspec.ps1` 生成 `pubspec.yaml` ### 5.5 MacBook Pro 修改 ios/macos 后,鸿蒙端是否需要同步? @@ -1022,24 +1059,30 @@ iOS/macOS 端这些检测不会执行(`isOhos` 为 false),无需关心。 | `ios/` 目录 | ❌ 不需要 | 平台原生代码,鸿蒙不使用 | | `macos/` 目录 | ❌ 不需要 | 平台原生代码,鸿蒙不使用 | | `lib/` 目录 | ✅ 需要同步 | Dart 代码所有平台共用 | -| `pubspec.yaml` | ✅ 需要同步 | 依赖配置共享(鸿蒙端自行维护本地包版本) | +| `pubspec.ohos.yaml` | ✅ 鸿蒙端模板 | 鸿蒙端依赖配置 | +| `pubspec.macos.yaml` | ✅ MacBook Pro端模板 | MacBook Pro端依赖配置 | +| `pubspec.yaml` | ❌ 不提交 | 已加入 .gitignore,本地生成 | | `assets/` 目录 | ✅ 需要同步 | 资源文件共享 | +> **实际案例**:`bitsdojo_window → window_manager` 迁移时,MacBook Pro 端先完成代码和依赖替换, +> 鸿蒙端随后同步更新 `pubspec.yaml`(移除 `bitsdojo_window`,添加 `window_manager`), +> 并删除 `packages/bitsdojo_window_windows/` 废弃目录。 + ### 5.6 常见问题 | 问题 | 原因 | 解决方案 | |---|---|---| -| `flutter pub get` 报 packages/xxx 目录不存在 | pubspec.yaml 中有 `path: packages/xxx` 引用 | 替换为远程版本号,参见 §2.2 | -| 编译报 `TargetPlatform.ohos` 不存在 | 使用了含 ohos 引用的本地包 | 使用远程版本,参见 §2.1 | +| `flutter pub get` 报 packages/xxx 目录不存在 | pubspec.yaml 是鸿蒙端模板 | MacBook Pro端运行 `.\tools\setup_pubspec.ps1 -Platform macos` | +| 编译报 `TargetPlatform.ohos` 不存在 | 使用了含 ohos 引用的本地包 | 确认使用 `pubspec.macos.yaml` 生成的 pubspec.yaml | | iOS 编译报 ohos 相关错误 | 误用鸿蒙SDK编译iOS | 切换到官方 Flutter SDK | | GoRouter 路由正常但鸿蒙端白屏 | 鸿蒙端不支持 GoRouter | 检查 OhosNavBridge 路由映射 | -| git pull 后 pubspec.yaml 被覆盖 | 仓库版本是鸿蒙端配置 | 重新替换为远程版本,参见 §3.3.4 | -| 误提交了 MacBook Pro 端的 pubspec.yaml | 删除了鸿蒙本地包引用 | 立即回退,恢复鸿蒙端配置 | +| git pull 后 pubspec.yaml 被覆盖 | pubspec.yaml 已在 .gitignore | 重新运行 `.\tools\setup_pubspec.ps1` | +| 新增依赖后另一端报错 | 只更新了一个模板 | 必须同时更新两个模板 + 文档,参见 §2.4 | | 新增依赖后鸿蒙端报错 | 新增的三方库未适配鸿蒙 | 通知鸿蒙开发者评估,必要时本地化到 packages/ | | 编译报 `OhosInitializationSettings` 不存在 | 官方SDK无此类型 | 使用 `notification_init_stub.dart` 桥接,参见 §4.5 | | 编译报 `ohosName` 参数不存在 | 官方SDK的 HomeWidget 无此参数 | 使用 `dynamic` 调用,参见 §4.5.2 | -| `pro_image_editor` 报 `CanvasStyleModel` 不存在 | 远程版本不含魔改内容 | 使用本地包 `path: packages/pro_image_editor`,参见 §2.5.1 | -| `FilePicker.platform` 报错 | file_picker 11.x API 变更 | 使用 `FilePicker.pickFiles()`,参见 §2.5.2 | +| `pro_image_editor` 报 `CanvasStyleModel` 不存在 | 远程版本不含魔改内容 | 使用本地包 `path: packages/pro_image_editor`,参见 §2.8.1 | +| `FilePicker.platform` 报错 | file_picker 11.x API 变更 | 使用 `FilePicker.pickFiles()`,参见 §2.8.2 | --- diff --git a/pubspec.lock b/pubspec.lock deleted file mode 100644 index 077e8788..00000000 --- a/pubspec.lock +++ /dev/null @@ -1,3354 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - _fe_analyzer_shared: - dependency: transitive - description: - name: _fe_analyzer_shared - sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d - url: "https://pub.flutter-io.cn" - source: hosted - version: "91.0.0" - adaptive_palette: - dependency: "direct main" - description: - name: adaptive_palette - sha256: da31f9f3b67dae287d0366f5e5245d4a67a7ca49a28dc7b9a753c6787a3f1238 - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.0" - analysis_server_plugin: - dependency: transitive - description: - name: analysis_server_plugin - sha256: "26844e7f977087567135d62532b67d5639fe206c5194c3f410ba75e1a04a2747" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.3.3" - analyzer: - dependency: transitive - description: - name: analyzer - sha256: a40a0cee526a7e1f387c6847bd8a5ccbf510a75952ef8a28338e989558072cb0 - url: "https://pub.flutter-io.cn" - source: hosted - version: "8.4.0" - analyzer_buffer: - dependency: transitive - description: - name: analyzer_buffer - sha256: aba2f75e63b3135fd1efaa8b6abefe1aa6e41b6bd9806221620fa48f98156033 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.11" - analyzer_plugin: - dependency: transitive - description: - name: analyzer_plugin - sha256: "08cfefa90b4f4dd3b447bda831cecf644029f9f8e22820f6ee310213ebe2dd53" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.13.10" - animate_do: - dependency: "direct main" - description: - name: animate_do - sha256: ddc9bde27df897088e02553f0aec44c614595de01fe357ffb257ecaf7d40c8fa - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.1.0" - animations: - dependency: "direct main" - description: - name: animations - sha256: "9cb469212ea51be27097f23b519d594c01171721347b55df9334fff653659e7f" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.2.0" - app_links: - dependency: "direct main" - description: - path: "packages/app_links" - relative: true - source: path - version: "7.0.0-ohos.1" - app_links_linux: - dependency: transitive - description: - name: app_links_linux - sha256: f5f7173a78609f3dfd4c2ff2c95bd559ab43c80a87dc6a095921d96c05688c81 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.3" - app_links_ohos: - dependency: "direct overridden" - description: - path: "packages/app_links_ohos" - relative: true - source: path - version: "7.0.0-ohos.1" - app_links_platform_interface: - dependency: transitive - description: - name: app_links_platform_interface - sha256: "05f5379577c513b534a29ddea68176a4d4802c46180ee8e2e966257158772a3f" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.2" - app_links_web: - dependency: transitive - description: - name: app_links_web - sha256: af060ed76183f9e2b87510a9480e56a5352b6c249778d07bd2c95fc35632a555 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.4" - archive: - dependency: "direct main" - description: - name: archive - sha256: a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.0.9" - args: - dependency: transitive - description: - name: args - sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.7.0" - asn1lib: - dependency: transitive - description: - name: asn1lib - sha256: "9a8f69025044eb466b9b60ef3bc3ac99b4dc6c158ae9c56d25eeccf5bc56d024" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.6.5" - async: - dependency: transitive - description: - name: async - sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.13.1" - audioplayers: - dependency: "direct main" - description: - path: "packages/audioplayers" - relative: true - source: path - version: "6.5.0-ohos.1" - audioplayers_android: - dependency: transitive - description: - name: audioplayers_android - sha256: "60a6728277228413a85755bd3ffd6fab98f6555608923813ce383b190a360605" - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.2.1" - audioplayers_darwin: - dependency: transitive - description: - name: audioplayers_darwin - sha256: c994b3bb3a921e4904ac40e013fbc94488e824fd7c1de6326f549943b0b44a91 - url: "https://pub.flutter-io.cn" - source: hosted - version: "6.4.0" - audioplayers_linux: - dependency: transitive - description: - name: audioplayers_linux - sha256: f75bce1ce864170ef5e6a2c6a61cd3339e1a17ce11e99a25bae4474ea491d001 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.2.1" - audioplayers_ohos: - dependency: "direct overridden" - description: - path: "packages/audioplayers_ohos" - relative: true - source: path - version: "5.2.1-ohos.1" - audioplayers_platform_interface: - dependency: transitive - description: - name: audioplayers_platform_interface - sha256: "0e2f6a919ab56d0fec272e801abc07b26ae7f31980f912f24af4748763e5a656" - url: "https://pub.flutter-io.cn" - source: hosted - version: "7.1.1" - audioplayers_web: - dependency: transitive - description: - name: audioplayers_web - sha256: faa8fa6587f996a6f604433b53af44c57a1407d4fe8dff5766cf63d6875e8de9 - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.2.0" - audioplayers_windows: - dependency: transitive - description: - name: audioplayers_windows - sha256: bafff2b38b6f6d331887558ba6e0a01c9c208d9dbb3ad0005234db065122a734 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.3.0" - badges: - dependency: "direct main" - description: - name: badges - sha256: cf1c88fb3777df69ccd630b80de5267f54efa4a39381b0404a7c03d56cb7c041 - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.2.0" - basic_utils: - dependency: "direct main" - description: - name: basic_utils - sha256: "2064b21d3c41ed7654bc82cc476fd65542e04d60059b74d5eed490a4da08fc6c" - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.7.0" - battery_plus: - dependency: "direct main" - description: - path: "packages/battery_plus" - relative: true - source: path - version: "7.0.0-ohos.1" - battery_plus_ohos: - dependency: transitive - description: - path: "packages/battery_plus_ohos" - relative: true - source: path - version: "7.0.0" - battery_plus_platform_interface: - dependency: transitive - description: - name: battery_plus_platform_interface - sha256: e8342c0f32de4b1dfd0223114b6785e48e579bfc398da9471c9179b907fa4910 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.1" - bitsdojo_window: - dependency: "direct main" - description: - name: bitsdojo_window - sha256: "88ef7765dafe52d97d7a3684960fb5d003e3151e662c18645c1641c22b873195" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.6" - bitsdojo_window_linux: - dependency: transitive - description: - name: bitsdojo_window_linux - sha256: "9519c0614f98be733e0b1b7cb15b827007886f6fe36a4fb62cf3d35b9dd578ab" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.4" - bitsdojo_window_macos: - dependency: transitive - description: - name: bitsdojo_window_macos - sha256: f7c5be82e74568c68c5b8449e2c5d8fd12ec195ecd70745a7b9c0f802bb0268f - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.4" - bitsdojo_window_platform_interface: - dependency: transitive - description: - name: bitsdojo_window_platform_interface - sha256: "65daa015a0c6dba749bdd35a0f092e7a8ba8b0766aa0480eb3ef808086f6e27c" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.2" - bitsdojo_window_windows: - dependency: "direct overridden" - description: - path: "packages/bitsdojo_window_windows" - relative: true - source: path - version: "0.1.7" - bluez: - dependency: transitive - description: - name: bluez - sha256: "61a7204381925896a374301498f2f5399e59827c6498ae1e924aaa598751b545" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.8.3" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.2" - bot_toast: - dependency: "direct main" - description: - name: bot_toast - sha256: "6b93030a99a98335b8827ecd83021e92e885ffc61d261d3825ffdecdd17f3bdf" - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.1.3" - build: - dependency: transitive - description: - name: build - sha256: a156715e7cd728130c592f30552575908aae5b100005fbc1f0fb16b3c03a3d10 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.0.6" - build_config: - dependency: transitive - description: - name: build_config - sha256: "4070d2a59f8eec34c97c86ceb44403834899075f66e8a9d59706f8e7834f6f71" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.3.0" - build_daemon: - dependency: transitive - description: - name: build_daemon - sha256: bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.1.1" - build_runner: - dependency: "direct dev" - description: - name: build_runner - sha256: "1523ce62448ebac2c15a8ba5fbad8acac169788658a7dd2a1c2d9c2a9318b9a6" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.15.0" - built_collection: - dependency: transitive - description: - name: built_collection - sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.1.1" - built_value: - dependency: transitive - description: - name: built_value - sha256: "34e4067d30ce212937df995f03b69992eea683539ceeac7f679a1f1eba055b56" - url: "https://pub.flutter-io.cn" - source: hosted - version: "8.12.6" - cached_network_image: - dependency: "direct main" - description: - name: cached_network_image - sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.4.1" - cached_network_image_platform_interface: - dependency: transitive - description: - name: cached_network_image_platform_interface - sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829" - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.1.1" - cached_network_image_web: - dependency: transitive - description: - name: cached_network_image_web - sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.3.1" - catcher_2: - dependency: "direct main" - description: - name: catcher_2 - sha256: ac9dd03230fa4058d14d46450335ca3c40564f734d793e52f81053f3cbf95009 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.9" - characters: - dependency: transitive - description: - name: characters - sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.4.1" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.4.0" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.4" - ci: - dependency: transitive - description: - name: ci - sha256: "145d095ce05cddac4d797a158bc4cf3b6016d1fe63d8c3d2fbd7212590adca13" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.0" - cli_config: - dependency: transitive - description: - name: cli_config - sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.2.0" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.4.2" - clock: - dependency: transitive - description: - name: clock - sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.2" - code_assets: - dependency: transitive - description: - name: code_assets - sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.0" - code_builder: - dependency: transitive - description: - name: code_builder - sha256: "6a6cab2ba4680d6423f34a9b972a4c9a94ebe1b62ecec4e1a1f2cba91fd1319d" - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.11.1" - collection: - dependency: "direct main" - description: - name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.19.1" - confetti: - dependency: "direct main" - description: - name: confetti - sha256: "79376a99648efbc3f23582f5784ced0fe239922bd1a0fb41f582051eba750751" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.8.0" - connectivity_plus: - dependency: "direct main" - description: - path: "packages/connectivity_plus" - relative: true - source: path - version: "7.1.1-ohos.1" - connectivity_plus_platform_interface: - dependency: transitive - description: - name: connectivity_plus_platform_interface - sha256: "3c09627c536d22fd24691a905cdd8b14520de69da52c7a97499c8be5284a32ed" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.0" - convert: - dependency: transitive - description: - name: convert - sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.2" - coverage: - dependency: transitive - description: - name: coverage - sha256: "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.15.0" - cross_file: - dependency: "direct main" - description: - name: cross_file - sha256: "28bb3ae56f117b5aec029d702a90f57d285cd975c3c5c281eaca38dbc47c5937" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.3.5+2" - crypto: - dependency: "direct main" - description: - name: crypto - sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.7" - csslib: - dependency: transitive - description: - name: csslib - sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.2" - cupertino_icons: - dependency: "direct main" - description: - name: cupertino_icons - sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.9" - custom_lint: - dependency: "direct dev" - description: - name: custom_lint - sha256: "751ee9440920f808266c3ec2553420dea56d3c7837dd2d62af76b11be3fcece5" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.8.1" - custom_lint_core: - dependency: transitive - description: - name: custom_lint_core - sha256: "85b339346154d5646952d44d682965dfe9e12cae5febd706f0db3aa5010d6423" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.8.1" - custom_lint_visitor: - dependency: transitive - description: - name: custom_lint_visitor - sha256: "91f2a81e9f0abb4b9f3bb529f78b6227ce6050300d1ae5b1e2c69c66c7a566d8" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.0+8.4.0" - custom_refresh_indicator: - dependency: "direct main" - description: - name: custom_refresh_indicator - sha256: c34dd1dfb1f6b9ee2db9c5972586dba5e4445d79f8431f6ab098a6e963ccd39c - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.0.1" - dart_quill_delta: - dependency: transitive - description: - name: dart_quill_delta - sha256: bddb0b2948bd5b5a328f1651764486d162c59a8ccffd4c63e8b2c5e44be1dac4 - url: "https://pub.flutter-io.cn" - source: hosted - version: "10.8.3" - dart_style: - dependency: transitive - description: - name: dart_style - sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.3" - dart_webrtc: - dependency: transitive - description: - name: dart_webrtc - sha256: f6d615bddea5e458ce180a914f3055c234ffb52fb7397a51b3491e76d6d7edb2 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.8.1" - dartx: - dependency: "direct main" - description: - name: dartx - sha256: "8b25435617027257d43e6508b5fe061012880ddfdaa75a71d607c3de2a13d244" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.2.0" - dbus: - dependency: transitive - description: - name: dbus - sha256: d0c98dcd4f5169878b6cf8f6e0a52403a9dff371a3e2f019697accbf6f44a270 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.7.12" - desktop_drop: - dependency: "direct main" - description: - name: desktop_drop - sha256: "03abf1c0443afdd1d65cf8fa589a2f01c67a11da56bbb06f6ea1de79d5628e94" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.5.0" - device_calendar: - dependency: "direct main" - description: - name: device_calendar - sha256: "683fb93ec302b6a65c0ce57df40ff9dcc2404f59c67a2f8b93e59318c8a0a225" - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.3.3" - device_info_plus: - dependency: "direct main" - description: - path: "packages/device_info_plus" - relative: true - source: path - version: "13.1.0-ohos.1" - device_info_plus_platform_interface: - dependency: transitive - description: - name: device_info_plus_platform_interface - sha256: "04b173a92e2d9161dfead145667037c8d834db725ce2e7b942bfe18fd2f45a46" - url: "https://pub.flutter-io.cn" - source: hosted - version: "8.1.0" - diff_match_patch: - dependency: transitive - description: - name: diff_match_patch - sha256: "2efc9e6e8f449d0abe15be240e2c2a3bcd977c8d126cfd70598aee60af35c0a4" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.4.1" - dio: - dependency: "direct main" - description: - name: dio - sha256: aff32c08f92787a557dd5c0145ac91536481831a01b4648136373cddb0e64f8c - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.9.2" - dio_cache_interceptor: - dependency: "direct main" - description: - name: dio_cache_interceptor - sha256: "1346705a2057c265014d7696e3e2318b560bfb00b484dac7f9b01e2ceaebb07d" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.5.1" - dio_web_adapter: - dependency: transitive - description: - name: dio_web_adapter - sha256: "2f9e64323a7c3c7ef69567d5c800424a11f8337b8b228bad02524c9fb3c1f340" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.2" - dotted_border: - dependency: "direct main" - description: - name: dotted_border - sha256: "99b091ec6891ba0c5331fdc2b502993c7c108f898995739a73c6845d71dad70c" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.0" - drift: - dependency: "direct main" - description: - name: drift - sha256: "970cd188fddb111b26ea6a9b07a62bf5c2432d74147b8122c67044ae3b97e99e" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.31.0" - drift_dev: - dependency: "direct dev" - description: - name: drift_dev - sha256: "917184b2fb867b70a548a83bf0d36268423b38d39968c06cce4905683da49587" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.31.0" - encrypt: - dependency: "direct main" - description: - name: encrypt - sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2" - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.0.3" - equatable: - dependency: transitive - description: - name: equatable - sha256: "3e0141505477fd8ad55d6eb4e7776d3fe8430be8e497ccb1521370c3f21a3e2b" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.8" - extended_image: - dependency: "direct main" - description: - name: extended_image - sha256: f6cbb1d798f51262ed1a3d93b4f1f2aa0d76128df39af18ecb77fa740f88b2e0 - url: "https://pub.flutter-io.cn" - source: hosted - version: "10.0.1" - extended_image_library: - dependency: transitive - description: - name: extended_image_library - sha256: "1f9a24d3a00c2633891c6a7b5cab2807999eb2d5b597e5133b63f49d113811fe" - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.0.1" - fake_async: - dependency: transitive - description: - name: fake_async - sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.3.3" - ffi: - dependency: transitive - description: - name: ffi - sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.2.0" - ffi_leak_tracker: - dependency: transitive - description: - name: ffi_leak_tracker - sha256: "4093d4ef9ca06ffe2786e73bfb25e22aa92112b9bb4ec941f11e3e6b61489a97" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.2" - file: - dependency: transitive - description: - name: file - sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 - url: "https://pub.flutter-io.cn" - source: hosted - version: "7.0.1" - file_picker: - dependency: "direct main" - description: - path: "packages/file_picker" - relative: true - source: path - version: "11.0.0-ohos.1" - file_selector_linux: - dependency: transitive - description: - name: file_selector_linux - sha256: "2567f398e06ac72dcf2e98a0c95df2a9edd03c2c2e0cacd4780f20cdf56263a0" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.9.4" - file_selector_macos: - dependency: transitive - description: - name: file_selector_macos - sha256: "5e0bbe9c312416f1787a68259ea1505b52f258c587f12920422671807c4d618a" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.9.5" - file_selector_platform_interface: - dependency: transitive - description: - name: file_selector_platform_interface - sha256: "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.7.0" - file_selector_windows: - dependency: transitive - description: - name: file_selector_windows - sha256: "62197474ae75893a62df75939c777763d39c2bc5f73ce5b88497208bc269abfd" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.9.3+5" - fixnum: - dependency: transitive - description: - name: fixnum - sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.1" - flex_color_picker: - dependency: "direct main" - description: - path: "packages/flex_color_picker" - relative: true - source: path - version: "3.8.0-ohos.1" - flex_seed_scheme: - dependency: transitive - description: - name: flex_seed_scheme - sha256: a3183753bbcfc3af106224bff3ab3e1844b73f58062136b7499919f49f3667e7 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.0.1" - flutter: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_3d_controller: - dependency: "direct main" - description: - name: flutter_3d_controller - sha256: "7b5bcd3deab4a58798e1b2cef382374a4c210badac1853d9ec680f66bb3030b4" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.3.0" - flutter_advanced_canvas_editor: - dependency: "direct main" - description: - name: flutter_advanced_canvas_editor - sha256: "91ccf6c5a126f90ee65403a2db671ecb5a02caf10c0243d4dcaef124db65ca2e" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.0" - flutter_animate: - dependency: "direct main" - description: - name: flutter_animate - sha256: "7befe2d3252728afb77aecaaea1dec88a89d35b9b1d2eea6d04479e8af9117b5" - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.5.2" - flutter_app_group_directory: - dependency: transitive - description: - name: flutter_app_group_directory - sha256: "680ef9b2dee84c237cd7bb7fc78bc45867b32556a8a5f0de61278078b9fefd05" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.0" - flutter_blue_plus: - dependency: "direct main" - description: - path: "packages/flutter_blue_plus" - relative: true - source: path - version: "2.1.0-ohos.1" - flutter_blue_plus_android: - dependency: transitive - description: - name: flutter_blue_plus_android - sha256: d66bdcb0438e643d5de4af914851bdf7322448384795666efe92236626484740 - url: "https://pub.flutter-io.cn" - source: hosted - version: "8.2.2" - flutter_blue_plus_darwin: - dependency: transitive - description: - name: flutter_blue_plus_darwin - sha256: bb433d8c614964be3023d63f0460f1e2fe1a436cdbabd9bcc88438b509f4f045 - url: "https://pub.flutter-io.cn" - source: hosted - version: "8.2.2" - flutter_blue_plus_linux: - dependency: transitive - description: - name: flutter_blue_plus_linux - sha256: c08563ccef620be5a06dd6b895ee51ecd986d1fcab1edd2dbc3fa125518abb21 - url: "https://pub.flutter-io.cn" - source: hosted - version: "8.2.2" - flutter_blue_plus_ohos: - dependency: "direct overridden" - description: - path: "packages/flutter_blue_plus_ohos" - relative: true - source: path - version: "8.1.0-ohos.1" - flutter_blue_plus_platform_interface: - dependency: transitive - description: - name: flutter_blue_plus_platform_interface - sha256: "55abf2bdae442f2ed4cace044d491cbb9dd833729585541354e4ec42c227989c" - url: "https://pub.flutter-io.cn" - source: hosted - version: "8.2.2" - flutter_blue_plus_web: - dependency: transitive - description: - name: flutter_blue_plus_web - sha256: f6ed6bedf7568a3c3f91f0d668ca974c2a6d95f397e58e0d8cd6ad8681355819 - url: "https://pub.flutter-io.cn" - source: hosted - version: "8.2.3" - flutter_blue_plus_winrt: - dependency: transitive - description: - name: flutter_blue_plus_winrt - sha256: dce19eb095c5ed70de997c02911afd255d867627fceff9c68c6f8b88792d597e - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.0.19" - flutter_cache_manager: - dependency: "direct main" - description: - name: flutter_cache_manager - sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.4.1" - flutter_card_swiper: - dependency: "direct main" - description: - name: flutter_card_swiper - sha256: "895c6974729b51cf73a35f1b58ab57a0af3293131319e2cbccac3bc57ffcd69f" - url: "https://pub.flutter-io.cn" - source: hosted - version: "7.2.0" - flutter_colorpicker: - dependency: transitive - description: - name: flutter_colorpicker - sha256: "969de5f6f9e2a570ac660fb7b501551451ea2a1ab9e2097e89475f60e07816ea" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.0" - flutter_html: - dependency: "direct main" - description: - name: flutter_html - sha256: "38a2fd702ffdf3243fb7441ab58aa1bc7e6922d95a50db76534de8260638558d" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.0" - flutter_image_compress: - dependency: "direct main" - description: - path: "packages/flutter_image_compress" - relative: true - source: path - version: "2.4.0" - flutter_image_compress_common: - dependency: transitive - description: - name: flutter_image_compress_common - sha256: c5c5d50c15e97dd7dc72ff96bd7077b9f791932f2076c5c5b6c43f2c88607bfb - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.6" - flutter_image_compress_macos: - dependency: transitive - description: - name: flutter_image_compress_macos - sha256: "20019719b71b743aba0ef874ed29c50747461e5e8438980dfa5c2031898f7337" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.3" - flutter_image_compress_ohos: - dependency: transitive - description: - path: "packages/flutter_image_compress_ohos" - relative: true - source: path - version: "0.0.3" - flutter_image_compress_platform_interface: - dependency: transitive - description: - name: flutter_image_compress_platform_interface - sha256: "579cb3947fd4309103afe6442a01ca01e1e6f93dc53bb4cbd090e8ce34a41889" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.5" - flutter_image_compress_web: - dependency: transitive - description: - name: flutter_image_compress_web - sha256: b9b141ac7c686a2ce7bb9a98176321e1182c9074650e47bb140741a44b6f5a96 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.5" - flutter_inappwebview: - dependency: transitive - description: - name: flutter_inappwebview - sha256: "80092d13d3e29b6227e25b67973c67c7210bd5e35c4b747ca908e31eb71a46d5" - url: "https://pub.flutter-io.cn" - source: hosted - version: "6.1.5" - flutter_inappwebview_android: - dependency: transitive - description: - name: flutter_inappwebview_android - sha256: "62557c15a5c2db5d195cb3892aab74fcaec266d7b86d59a6f0027abd672cddba" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.3" - flutter_inappwebview_internal_annotations: - dependency: transitive - description: - name: flutter_inappwebview_internal_annotations - sha256: e30fba942e3debea7b7e6cdd4f0f59ce89dd403a9865193e3221293b6d1544c6 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.3.0" - flutter_inappwebview_ios: - dependency: transitive - description: - name: flutter_inappwebview_ios - sha256: "5818cf9b26cf0cbb0f62ff50772217d41ea8d3d9cc00279c45f8aabaa1b4025d" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.2" - flutter_inappwebview_macos: - dependency: transitive - description: - name: flutter_inappwebview_macos - sha256: c1fbb86af1a3738e3541364d7d1866315ffb0468a1a77e34198c9be571287da1 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.2" - flutter_inappwebview_platform_interface: - dependency: transitive - description: - name: flutter_inappwebview_platform_interface - sha256: cf5323e194096b6ede7a1ca808c3e0a078e4b33cc3f6338977d75b4024ba2500 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.3.0+1" - flutter_inappwebview_web: - dependency: transitive - description: - name: flutter_inappwebview_web - sha256: "55f89c83b0a0d3b7893306b3bb545ba4770a4df018204917148ebb42dc14a598" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.2" - flutter_inappwebview_windows: - dependency: transitive - description: - name: flutter_inappwebview_windows - sha256: "8b4d3a46078a2cdc636c4a3d10d10f2a16882f6be607962dbfff8874d1642055" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.6.0" - flutter_keyboard_visibility: - dependency: "direct main" - description: - name: flutter_keyboard_visibility - sha256: "98664be7be0e3ffca00de50f7f6a287ab62c763fc8c762e0a21584584a3ff4f8" - url: "https://pub.flutter-io.cn" - source: hosted - version: "6.0.0" - flutter_keyboard_visibility_linux: - dependency: transitive - description: - name: flutter_keyboard_visibility_linux - sha256: "6fba7cd9bb033b6ddd8c2beb4c99ad02d728f1e6e6d9b9446667398b2ac39f08" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.0" - flutter_keyboard_visibility_macos: - dependency: transitive - description: - name: flutter_keyboard_visibility_macos - sha256: c5c49b16fff453dfdafdc16f26bdd8fb8d55812a1d50b0ce25fc8d9f2e53d086 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.0" - flutter_keyboard_visibility_platform_interface: - dependency: transitive - description: - name: flutter_keyboard_visibility_platform_interface - sha256: e43a89845873f7be10cb3884345ceb9aebf00a659f479d1c8f4293fcb37022a4 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.0" - flutter_keyboard_visibility_temp_fork: - dependency: transitive - description: - name: flutter_keyboard_visibility_temp_fork - sha256: e3d02900640fbc1129245540db16944a0898b8be81694f4bf04b6c985bed9048 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.5" - flutter_keyboard_visibility_web: - dependency: transitive - description: - name: flutter_keyboard_visibility_web - sha256: d3771a2e752880c79203f8d80658401d0c998e4183edca05a149f5098ce6e3d1 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.0" - flutter_keyboard_visibility_windows: - dependency: transitive - description: - name: flutter_keyboard_visibility_windows - sha256: fc4b0f0b6be9b93ae527f3d527fb56ee2d918cd88bbca438c478af7bcfd0ef73 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.0" - flutter_lints: - dependency: "direct dev" - description: - name: flutter_lints - sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.0.0" - flutter_local_notifications: - dependency: "direct main" - description: - path: "packages/flutter_local_notifications" - relative: true - source: path - version: "21.0.0-ohos.1" - flutter_local_notifications_linux: - dependency: transitive - description: - name: flutter_local_notifications_linux - sha256: e0f25e243c6c44c825bbbc6b2b2e76f7d9222362adcfe9fd780bf01923c840bd - url: "https://pub.flutter-io.cn" - source: hosted - version: "8.0.0" - flutter_local_notifications_platform_interface: - dependency: transitive - description: - name: flutter_local_notifications_platform_interface - sha256: e7db3d5b49c2b7ecc68deba4aaaa67a348f92ee0fef34c8e4b4459dbef0d7307 - url: "https://pub.flutter-io.cn" - source: hosted - version: "11.0.0" - flutter_local_notifications_windows: - dependency: transitive - description: - name: flutter_local_notifications_windows - sha256: "3a2654ba104fbb52c618ebed9def24ef270228470718c43b3a6afcd5c81bef0c" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.0" - flutter_localizations: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_mailer: - dependency: transitive - description: - name: flutter_mailer - sha256: "149e51d4e3ba12f8b61e1923ff4304f308acb856b92e9d09326bec6a1ad943d6" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.1" - flutter_markdown_plus: - dependency: "direct main" - description: - name: flutter_markdown_plus - sha256: "039177906850278e8fb1cd364115ee0a46281135932fa8ecea8455522166d2de" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.7" - flutter_nfc_kit: - dependency: "direct main" - description: - path: "packages/flutter_nfc_kit" - relative: true - source: path - version: "3.6.0-rc.6" - flutter_plugin_android_lifecycle: - dependency: transitive - description: - name: flutter_plugin_android_lifecycle - sha256: "38d1c268de9097ff59cf0e844ac38759fc78f76836d37edad06fa21e182055a0" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.34" - flutter_quill: - dependency: "direct main" - description: - path: "packages/flutter_quill" - relative: true - source: path - version: "11.5.0-ohos.1" - flutter_quill_delta_from_html: - dependency: transitive - description: - name: flutter_quill_delta_from_html - sha256: "0eb801ea8dd498cadc057507af5da794d4c9599ce58b2569cb3d4bb53ba8bed2" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.5.3" - flutter_riverpod: - dependency: "direct main" - description: - name: flutter_riverpod - sha256: "38ec6c303e2c83ee84512f5fc2a82ae311531021938e63d7137eccc107bf3c02" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.0" - flutter_screenutil: - dependency: "direct main" - description: - name: flutter_screenutil - sha256: "8239210dd68bee6b0577aa4a090890342d04a136ce1c81f98ee513fc0ce891de" - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.9.3" - flutter_secure_storage: - dependency: "direct main" - description: - path: "packages/flutter_secure_storage" - relative: true - source: path - version: "9.2.4-ohos.1" - flutter_secure_storage_linux: - dependency: transitive - description: - name: flutter_secure_storage_linux - sha256: be76c1d24a97d0b98f8b54bce6b481a380a6590df992d0098f868ad54dc8f688 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.2.3" - flutter_secure_storage_macos: - dependency: transitive - description: - name: flutter_secure_storage_macos - sha256: "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.3" - flutter_secure_storage_ohos: - dependency: transitive - description: - path: "packages/flutter_secure_storage_ohos" - relative: true - source: path - version: "1.2.2" - flutter_secure_storage_platform_interface: - dependency: transitive - description: - name: flutter_secure_storage_platform_interface - sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.2" - flutter_secure_storage_web: - dependency: transitive - description: - name: flutter_secure_storage_web - sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.2.1" - flutter_secure_storage_windows: - dependency: "direct overridden" - description: - path: "packages/flutter_secure_storage_windows" - relative: true - source: path - version: "3.1.2" - flutter_shaders: - dependency: transitive - description: - name: flutter_shaders - sha256: "34794acadd8275d971e02df03afee3dee0f98dbfb8c4837082ad0034f612a3e2" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.3" - flutter_shaders_ui: - dependency: "direct main" - description: - name: flutter_shaders_ui - sha256: "552a161c91d209358a29ffa055574b90a1caf1e2128268e7a5d7dbb1cf0c83ca" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.1" - flutter_slidable: - dependency: "direct main" - description: - name: flutter_slidable - sha256: ea369262929d3cc6ebf9d8a00c196127966f117fe433a5e5cb47fb08008ca203 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.0.3" - flutter_spritesheet_animation: - dependency: "direct main" - description: - name: flutter_spritesheet_animation - sha256: "079b046110306f48db2a21e61f122ea45d3cae903efe4fd71494d05ef56ba885" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.2" - flutter_staggered_animations: - dependency: "direct main" - description: - name: flutter_staggered_animations - sha256: "81d3c816c9bb0dca9e8a5d5454610e21ffb068aedb2bde49d2f8d04f75538351" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.1" - flutter_staggered_grid_view: - dependency: "direct main" - description: - name: flutter_staggered_grid_view - sha256: "19e7abb550c96fbfeb546b23f3ff356ee7c59a019a651f8f102a4ba9b7349395" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.7.0" - flutter_sticky_header: - dependency: "direct main" - description: - name: flutter_sticky_header - sha256: fb4fda6164ef3e5fc7ab73aba34aad253c17b7c6ecf738fa26f1a905b7d2d1e2 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.8.0" - flutter_svg: - dependency: "direct main" - description: - name: flutter_svg - sha256: "35882981abcbfb8c15b286f0cd690ff25bac12d95eff3e25ee207f37d4c42e7f" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.3.0" - flutter_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" - flutter_tilt: - dependency: "direct main" - description: - name: flutter_tilt - sha256: "7edbc11a3aab4b6d5be35b2ea46a996d4a5bce1a5f19270ebd6a998b9f8163eb" - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.0.0" - flutter_tts: - dependency: "direct main" - description: - path: "packages/flutter_tts" - relative: true - source: path - version: "4.2.5-ohos.2" - flutter_vibrate: - dependency: "direct main" - description: - path: "." - ref: HEAD - resolved-ref: "40c9281f33f3ba4ea3c2bcf527d9ec17746bb688" - url: "https://gitcode.com/openharmony-sig/fluttertpc_flutter_vibrate.git" - source: git - version: "1.3.0" - flutter_web_plugins: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - flutter_webrtc: - dependency: "direct main" - description: - path: "packages/flutter_webrtc" - relative: true - source: path - version: "1.4.0-ohos.1" - fluttertoast: - dependency: transitive - description: - name: fluttertoast - sha256: "144ddd74d49c865eba47abe31cbc746c7b311c82d6c32e571fd73c4264b740e2" - url: "https://pub.flutter-io.cn" - source: hosted - version: "9.0.0" - freezed: - dependency: "direct dev" - description: - name: freezed - sha256: "13065f10e135263a4f5a4391b79a8efc5fb8106f8dd555a9e49b750b45393d77" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.2.3" - freezed_annotation: - dependency: "direct main" - description: - name: freezed_annotation - sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.0" - frontend_server_client: - dependency: transitive - description: - name: frontend_server_client - sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.0.0" - gal: - dependency: "direct main" - description: - path: "packages/gal" - relative: true - source: path - version: "2.3.0-ohos.1" - glob: - dependency: transitive - description: - name: glob - sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.3" - go_router: - dependency: "direct main" - description: - name: go_router - sha256: "92d8cee7c57dff0a6c409c05597b460002434eccf7424a712283225b3962d03f" - url: "https://pub.flutter-io.cn" - source: hosted - version: "17.2.3" - google_fonts: - dependency: "direct main" - description: - name: google_fonts - sha256: "4e9391085e524954a51e3625b7c9c7e9851dc3f376603208bb45c24b9a66255d" - url: "https://pub.flutter-io.cn" - source: hosted - version: "8.1.0" - graphs: - dependency: transitive - description: - name: graphs - sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.3.2" - gtk: - dependency: transitive - description: - name: gtk - sha256: "4ff85b2a16724029dd9e5bbb5a94b6918f9973f74ba571c949d2002801879cf5" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.2.0" - hashcodes: - dependency: transitive - description: - name: hashcodes - sha256: "80f9410a5b3c8e110c4b7604546034749259f5d6dcca63e0d3c17c9258f1a651" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.0" - heroine: - dependency: "direct main" - description: - name: heroine - sha256: "77ffabb6ebc211198b8442eff692b89e8eeca89f5578ad19ddcb9a155d832425" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.7.2" - hive_ce: - dependency: "direct main" - description: - name: hive_ce - sha256: "8e9980e68643afb1e765d3af32b47996552a64e190d03faf622cea07c1294418" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.19.3" - hive_flutter: - dependency: "direct main" - description: - path: "packages/hive_flutter" - relative: true - source: path - version: "1.1.0-ohos.2" - home_widget: - dependency: "direct main" - description: - path: "packages/home_widget" - relative: true - source: path - version: "0.9.1-ohos.1" - hooks: - dependency: transitive - description: - name: hooks - sha256: "025f060e86d2d4c3c47b56e33caf7f93bf9283340f26d23424ebcfccf34f621e" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.3" - html: - dependency: transitive - description: - name: html - sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.15.6" - http: - dependency: transitive - description: - name: http - sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.6.0" - http_cache_core: - dependency: transitive - description: - name: http_cache_core - sha256: ff0b6e6c3766d774d59b806f928b39e6a48f7b2c47ae1fe27410bfd792bee511 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.3" - http_cache_file_store: - dependency: "direct main" - description: - name: http_cache_file_store - sha256: b7d2d67ad262a4b5c6ccde4378228100ab0e58371d40cb2f0443177922638c01 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.1" - http_client_helper: - dependency: transitive - description: - name: http_client_helper - sha256: "8a9127650734da86b5c73760de2b404494c968a3fd55602045ffec789dac3cb1" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.0" - http_methods: - dependency: transitive - description: - name: http_methods - sha256: "6bccce8f1ec7b5d701e7921dca35e202d425b57e317ba1a37f2638590e29e566" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.1" - http_multi_server: - dependency: transitive - description: - name: http_multi_server - sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.2.2" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.1.2" - image: - dependency: "direct main" - description: - name: image - sha256: f9881ff4998044947ec38d098bc7c8316ae1186fa786eddffdb867b9bc94dfce - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.8.0" - image_picker: - dependency: "direct main" - description: - path: "packages/image_picker" - relative: true - source: path - version: "1.2.2-ohos.1" - image_picker_android: - dependency: transitive - description: - name: image_picker_android - sha256: d5b3e1774af29c9ab00103afb0d4614070f924d2e0057ac867ec98800114793f - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.8.13+17" - image_picker_for_web: - dependency: transitive - description: - name: image_picker_for_web - sha256: "66257a3191ab360d23a55c8241c91a6e329d31e94efa7be9cf7a212e65850214" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.1" - image_picker_ios: - dependency: transitive - description: - name: image_picker_ios - sha256: b9c4a438a9ff4f60808c9cf0039b93a42bb6c2211ef6ebb647394b2b3fa84588 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.8.13+6" - image_picker_linux: - dependency: transitive - description: - name: image_picker_linux - sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.2.2" - image_picker_macos: - dependency: transitive - description: - name: image_picker_macos - sha256: "86f0f15a309de7e1a552c12df9ce5b59fe927e71385329355aec4776c6a8ec91" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.2.2+1" - image_picker_ohos: - dependency: transitive - description: - path: "packages/image_picker_ohos" - relative: true - source: path - version: "0.8.13+7" - image_picker_platform_interface: - dependency: transitive - description: - name: image_picker_platform_interface - sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.11.1" - image_picker_windows: - dependency: transitive - description: - name: image_picker_windows - sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.2.2" - image_size_getter: - dependency: "direct main" - description: - name: image_size_getter - sha256: "7c26937e0ae341ca558b7556591fd0cc456fcc454583b7cb665d2f03e93e590f" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.1" - intl: - dependency: "direct main" - description: - name: intl - sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.20.2" - io: - dependency: transitive - description: - name: io - sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.5" - isolate_channel: - dependency: transitive - description: - name: isolate_channel - sha256: a9d3d620695bc984244dafae00b95e4319d6974b2d77f4b9e1eb4f2efe099094 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.6.1" - jni: - dependency: transitive - description: - name: jni - sha256: c2230682d5bc2362c1c9e8d3c7f406d9cbba23ab3f2e203a025dd47e0fb2e68f - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.0" - jni_flutter: - dependency: transitive - description: - name: jni_flutter - sha256: "8b59e590786050b1cd866677dddaf76b1ade5e7bc751abe04b86e84d379d3ba6" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.1" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.6.7" - json_annotation: - dependency: "direct main" - description: - name: json_annotation - sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.9.0" - json_serializable: - dependency: "direct dev" - description: - name: json_serializable - sha256: c5b2ee75210a0f263c6c7b9eeea80553dbae96ea1bf57f02484e806a3ffdffa3 - url: "https://pub.flutter-io.cn" - source: hosted - version: "6.11.2" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" - url: "https://pub.flutter-io.cn" - source: hosted - version: "11.0.2" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.10" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.2" - lints: - dependency: transitive - description: - name: lints - sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.1.1" - liquid_glass_easy: - dependency: "direct main" - description: - name: liquid_glass_easy - sha256: d6c32f2e1b1002c5c1739d2bfc8ee73f0716f03b4bde20390c4fc84d99b30138 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.1" - liquid_glass_widgets: - dependency: "direct main" - description: - name: liquid_glass_widgets - sha256: "71ddc9a5e6c90473624fc9a7c0a2e213deafeaa71ee0fad0deced11dd3fe7154" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.11.0" - list_counter: - dependency: transitive - description: - name: list_counter - sha256: c447ae3dfcd1c55f0152867090e67e219d42fe6d4f2807db4bbe8b8d69912237 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.2" - live_activities: - dependency: "direct main" - description: - path: "packages/live_activities" - relative: true - source: path - version: "2.4.9-ohos.1" - local_auth: - dependency: "direct main" - description: - path: "packages/local_auth" - relative: true - source: path - version: "3.0.1-ohos.1" - local_auth_android: - dependency: transitive - description: - name: local_auth_android - sha256: b201c006fa769c23386f89aa6837ec0eb8179fcfb212eadcf87b422b3f9a6a78 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.8" - local_auth_darwin: - dependency: transitive - description: - name: local_auth_darwin - sha256: a8c3d4e17454111f7fd31ff72a31222359f6059f7fe956c2dcfe0f88f49826d4 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.3" - local_auth_ohos: - dependency: transitive - description: - path: "packages/local_auth_ohos" - relative: true - source: path - version: "2.0.0" - local_auth_platform_interface: - dependency: transitive - description: - name: local_auth_platform_interface - sha256: f98b8e388588583d3f781f6806e4f4c9f9e189d898d27f0c249b93a1973dd122 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.0" - local_auth_windows: - dependency: transitive - description: - name: local_auth_windows - sha256: be12c5b8ba5e64896983123655c5f67d2484ecfcc95e367952ad6e3bff94cb16 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.1" - logger: - dependency: "direct main" - description: - name: logger - sha256: "25aee487596a6257655a1e091ec2ae66bc30e7af663592cc3a27e6591e05035c" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.7.0" - logging: - dependency: transitive - description: - name: logging - sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.3.0" - lottie: - dependency: "direct main" - description: - name: lottie - sha256: "8b6359a7422167014aa73ce763fa133fb832065dcc0ac4d1dec1f603a5cef7d0" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.3.3" - mailer: - dependency: "direct main" - description: - name: mailer - sha256: "7b8691b080809ea1b2fa2f1b0d49c7c089fb328bd23e68aa5818b9cf5f4b420d" - url: "https://pub.flutter-io.cn" - source: hosted - version: "7.1.0" - markdown: - dependency: transitive - description: - name: markdown - sha256: ee85086ad7698b42522c6ad42fe195f1b9898e4d974a1af4576c1a3a176cada9 - url: "https://pub.flutter-io.cn" - source: hosted - version: "7.3.1" - matcher: - dependency: transitive - description: - name: matcher - sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.12.19" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.13.0" - meta: - dependency: "direct overridden" - description: - name: meta - sha256: df0c643f44ad098eb37988027a8e2b2b5a031fd3977f06bbfd3a76637e8df739 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.18.2" - mime: - dependency: "direct main" - description: - name: mime - sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.0" - mobile_scanner: - dependency: "direct main" - description: - path: "packages/mobile_scanner" - relative: true - source: path - version: "7.1.4-ohos.1" - mockito: - dependency: transitive - description: - name: mockito - sha256: eff30d002f0c8bf073b6f929df4483b543133fcafce056870163587b03f1d422 - url: "https://pub.flutter-io.cn" - source: hosted - version: "5.6.4" - mocktail: - dependency: "direct dev" - description: - name: mocktail - sha256: "5e1bf53cc7baa8062a33b84424deb61513858ea05c601b8509e683815b5914aa" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.5" - motor: - dependency: transitive - description: - name: motor - sha256: cbd49f21b00e568c2b1a55f134ed803614a107782f4fea7769693bca32940c58 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.0" - native_toolchain_c: - dependency: transitive - description: - name: native_toolchain_c - sha256: "6ba77bb18063eebe9de401f5e6437e95e1438af0a87a3a39084fbd37c90df572" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.17.6" - ndef: - dependency: transitive - description: - name: ndef - sha256: bdf82a56da97983c75375ec914b7068fba4e6e0defb616c66457c28360b9c38f - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.3.5" - nearby_service: - dependency: "direct main" - description: - path: "packages/nearby_service" - relative: true - source: path - version: "0.2.1-ohos.1" - network_info_plus: - dependency: "direct main" - description: - path: "packages/network_info_plus" - relative: true - source: path - version: "8.1.0-ohos.1" - network_info_plus_ohos: - dependency: "direct overridden" - description: - path: "packages/network_info_plus_ohos" - relative: true - source: path - version: "8.1.0-ohos.1" - network_info_plus_platform_interface: - dependency: transitive - description: - name: network_info_plus_platform_interface - sha256: "210b58064bc08e04b3a2b608f1f999cf768871fbd531961dc33a91720869d182" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.0" - nm: - dependency: transitive - description: - name: nm - sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.5.0" - node_preamble: - dependency: transitive - description: - name: node_preamble - sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.0.2" - octo_image: - dependency: transitive - description: - name: octo_image - sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.0" - package_config: - dependency: transitive - description: - name: package_config - sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.2.0" - package_info_plus: - dependency: "direct main" - description: - path: "packages/package_info_plus" - relative: true - source: path - version: "10.1.0-ohos.1" - package_info_plus_platform_interface: - dependency: transitive - description: - name: package_info_plus_platform_interface - sha256: db762cb2f4f25ee60fb6359773861b0f199e00b90d237bd85a76a1e806b46ef4 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.1.0" - path: - dependency: "direct main" - description: - name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.9.1" - path_parsing: - dependency: transitive - description: - name: path_parsing - sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.0" - path_provider: - dependency: "direct main" - description: - path: "packages/path_provider" - relative: true - source: path - version: "2.1.5-ohos.1" - path_provider_android: - dependency: transitive - description: - name: path_provider_android - sha256: "69cbd515a62b94d32a7944f086b2f82b4ac40a1d45bebfc00813a430ab2dabcd" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.3.1" - path_provider_linux: - dependency: transitive - description: - name: path_provider_linux - sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.2.1" - path_provider_ohos: - dependency: transitive - description: - path: "packages/path_provider_ohos" - relative: true - source: path - version: "2.2.17" - path_provider_platform_interface: - dependency: transitive - description: - name: path_provider_platform_interface - sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.2" - path_provider_windows: - dependency: transitive - description: - name: path_provider_windows - sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.3.0" - permission_handler: - dependency: "direct main" - description: - path: "packages/permission_handler" - relative: true - source: path - version: "12.0.1-ohos.1" - permission_handler_android: - dependency: transitive - description: - name: permission_handler_android - sha256: "1e3bc410ca1bf84662104b100eb126e066cb55791b7451307f9708d4007350e6" - url: "https://pub.flutter-io.cn" - source: hosted - version: "13.0.1" - permission_handler_apple: - dependency: transitive - description: - name: permission_handler_apple - sha256: f000131e755c54cf4d84a5d8bd6e4149e262cc31c5a8b1d698de1ac85fa41023 - url: "https://pub.flutter-io.cn" - source: hosted - version: "9.4.7" - permission_handler_html: - dependency: transitive - description: - name: permission_handler_html - sha256: "38f000e83355abb3392140f6bc3030660cfaef189e1f87824facb76300b4ff24" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.3+5" - permission_handler_ohos: - dependency: transitive - description: - path: "packages/permission_handler_ohos" - relative: true - source: path - version: "12.0.1" - permission_handler_platform_interface: - dependency: transitive - description: - name: permission_handler_platform_interface - sha256: eb99b295153abce5d683cac8c02e22faab63e50679b937fa1bf67d58bb282878 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.3.0" - permission_handler_windows: - dependency: transitive - description: - name: permission_handler_windows - sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.2.1" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675" - url: "https://pub.flutter-io.cn" - source: hosted - version: "7.0.2" - photo_view: - dependency: "direct main" - description: - name: photo_view - sha256: "1fc3d970a91295fbd1364296575f854c9863f225505c28c46e0a03e48960c75e" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.15.0" - pigeon: - dependency: transitive - description: - name: pigeon - sha256: "2a4bfd279fac52b115818e93f5409d07955f7b3718d303fd5f100981be4de386" - url: "https://pub.flutter-io.cn" - source: hosted - version: "26.3.2" - pinyin: - dependency: "direct main" - description: - name: pinyin - sha256: "240f271a3c71af20c8d2757756b5ee8e9d79a955d37abad4b3568fd406b22411" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.3.0" - platform: - dependency: transitive - description: - name: platform - sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.6" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.8" - pointycastle: - dependency: transitive - description: - name: pointycastle - sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.9.1" - pool: - dependency: transitive - description: - name: pool - sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.5.2" - posix: - dependency: transitive - description: - name: posix - sha256: "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07" - url: "https://pub.flutter-io.cn" - source: hosted - version: "6.5.0" - pro_image_editor: - dependency: "direct main" - description: - name: pro_image_editor - sha256: b9ef2e934b74c7e12e7803697433d00c12187fc83e210313ac20ec93370a61b4 - url: "https://pub.flutter-io.cn" - source: hosted - version: "12.4.4" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.2.0" - pubspec_parse: - dependency: transitive - description: - name: pubspec_parse - sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.5.0" - pull_down_button: - dependency: "direct main" - description: - name: pull_down_button - sha256: "12cdd8ff187a3150ebdf075e5074299f085579b158d2b4e655ccbafccf95f25b" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.10.2" - punycoder: - dependency: transitive - description: - name: punycoder - sha256: aed79c05986a18782caa9bad649a4a786e840e1baaf6a2e1aa3a25d143d28e6e - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.2.2" - qr: - dependency: transitive - description: - name: qr - sha256: "5a1d2586170e172b8a8c8470bbbffd5eb0cd38a66c0d77155ea138d3af3a4445" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.2" - qr_flutter: - dependency: "direct main" - description: - name: qr_flutter - sha256: "5095f0fc6e3f71d08adef8feccc8cea4f12eec18a2e31c2e8d82cb6019f4b097" - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.1.0" - quick_actions: - dependency: "direct main" - description: - name: quick_actions - sha256: "7e35dd6a21f5bbd21acf6899039eaf85001a5ac26d52cbd6a8a2814505b90798" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.0" - quick_actions_android: - dependency: transitive - description: - name: quick_actions_android - sha256: "6fbdda87fbedd0602b91f35d870c2cbcb6d053bc863efb76c6e7f60f1d8e3fd6" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.30" - quick_actions_ios: - dependency: transitive - description: - name: quick_actions_ios - sha256: be1496e7ca1debc86d9ea08e56325649fbc5abb2b6930690c97ba0dae59992b1 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.2.4" - quick_actions_platform_interface: - dependency: transitive - description: - name: quick_actions_platform_interface - sha256: "1fec7068db5122cd019e9340d3d7be5d36eab099695ef3402c7059ee058329a4" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.0" - quill_native_bridge: - dependency: transitive - description: - name: quill_native_bridge - sha256: "76a16512e398e84216f3f659f7cb18a89ec1e141ea908e954652b4ce6cf15b18" - url: "https://pub.flutter-io.cn" - source: hosted - version: "11.1.0" - quill_native_bridge_android: - dependency: transitive - description: - name: quill_native_bridge_android - sha256: b75c7e6ede362a7007f545118e756b1f19053994144ec9eda932ce5e54a57569 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.0.1+2" - quill_native_bridge_ios: - dependency: transitive - description: - name: quill_native_bridge_ios - sha256: d23de3cd7724d482fe2b514617f8eedc8f296e120fb297368917ac3b59d8099f - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.0.1" - quill_native_bridge_macos: - dependency: transitive - description: - name: quill_native_bridge_macos - sha256: "1c0631bd1e2eee765a8b06017c5286a4e829778f4585736e048eb67c97af8a77" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.0.1" - quill_native_bridge_platform_interface: - dependency: transitive - description: - name: quill_native_bridge_platform_interface - sha256: "8264a2bdb8a294c31377a27b46c0f8717fa9f968cf113f7dc52d332ed9c84526" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.0.2+1" - quill_native_bridge_web: - dependency: transitive - description: - name: quill_native_bridge_web - sha256: "7c723f6824b0250d7f33e8b6c23f2f8eb0103fe48ee7ebf47ab6786b64d5c05d" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.0.2" - quill_native_bridge_windows: - dependency: "direct overridden" - description: - path: "packages/quill_native_bridge_windows" - relative: true - source: path - version: "0.0.2" - quiver: - dependency: transitive - description: - name: quiver - sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2 - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.2.2" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.1.0" - receive_sharing_intent: - dependency: "direct main" - description: - path: "." - ref: "br_v1.8.1_ohos" - resolved-ref: "59f4e7c741680a5ce121a7ddc686b89d4fe03182" - url: "https://gitcode.com/openharmony-sig/fluttertpc_receive_sharing_intent.git" - source: git - version: "1.8.1" - record: - dependency: "direct main" - description: - path: "packages/record" - relative: true - source: path - version: "6.0.0-ohos.1" - record_android: - dependency: transitive - description: - name: record_android - sha256: "94783f08403aed33ffb68797bf0715b0812eb852f3c7985644c945faea462ba1" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.5.1" - record_ios: - dependency: transitive - description: - name: record_ios - sha256: "8df7c136131bd05efc19256af29b2ba6ccc000ccc2c80d4b6b6d7a8d21a3b5a9" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.2.0" - record_linux: - dependency: transitive - description: - name: record_linux - sha256: c31a35cc158cd666fc6395f7f56fc054f31685571684be6b97670a27649ce5c7 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.3.0" - record_macos: - dependency: transitive - description: - name: record_macos - sha256: "084902e63fc9c0c224c29203d6c75f0bdf9b6a40536c9d916393c8f4c4256488" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.2.1" - record_ohos: - dependency: "direct overridden" - description: - path: "packages/record_ohos" - relative: true - source: path - version: "1.0.0-ohos.1" - record_platform_interface: - dependency: transitive - description: - name: record_platform_interface - sha256: "8a81dbc4e14e1272a285bbfef6c9136d070a47d9b0d1f40aa6193516253ee2f6" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.5.0" - record_use: - dependency: transitive - description: - name: record_use - sha256: "2551bd8eecfe95d14ae75f6021ad0248be5c27f138c2ec12fcb52b500b3ba1ed" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.6.0" - record_web: - dependency: transitive - description: - name: record_web - sha256: "7e9846981c1f2d111d86f0ae3309071f5bba8b624d1c977316706f08fc31d16d" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.3.0" - record_windows: - dependency: transitive - description: - name: record_windows - sha256: "223258060a1d25c62bae18282c16783f28581ec19401d17e56b5205b9f039d78" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.7" - rive: - dependency: "direct main" - description: - name: rive - sha256: "3533244f855469047500c6d40c1232adf61e3ee35a6e706a6e8e5c6e2328c7df" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.14.7" - rive_native: - dependency: transitive - description: - name: rive_native - sha256: "27ffdb21e0c2cc3b5d37bcfa6b198830954784adb82b798383d35b0c2603a74e" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.7" - riverpod: - dependency: transitive - description: - name: riverpod - sha256: "16ff608d21e8ea64364f2b7c049c94a02ab81668f78845862b6e88b71dd4935a" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.0" - riverpod_analyzer_utils: - dependency: transitive - description: - name: riverpod_analyzer_utils - sha256: "947b05d04c52a546a2ac6b19ef2a54b08520ff6bdf9f23d67957a4c8df1c3bc0" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.0-dev.8" - riverpod_annotation: - dependency: "direct main" - description: - name: riverpod_annotation - sha256: cc1474bc2df55ec3c1da1989d139dcef22cd5e2bd78da382e867a69a8eca2e46 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.0.0" - riverpod_generator: - dependency: "direct dev" - description: - name: riverpod_generator - sha256: e43b1537229cc8f487f09b0c20d15dba840acbadcf5fc6dad7ad5e8ab75950dc - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.0.0+1" - riverpod_lint: - dependency: "direct dev" - description: - name: riverpod_lint - sha256: "4d2eb0d19bbe7e3323bd0ce4553b2e6170d161a13914bfdd85a3612329edcb43" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.0" - rss_dart: - dependency: "direct main" - description: - name: rss_dart - sha256: "09c0123427e9557d74562e07f9d22effe3fd493893602e8a8d24b961490f2c30" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.14" - rxdart: - dependency: transitive - description: - name: rxdart - sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.28.0" - scroll_drag_detector: - dependency: transitive - description: - name: scroll_drag_detector - sha256: "287f56dd01c96aeb083b7619cc17eaae9a94df2066f9f4a921d09537dbb2b876" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.0+2" - sensors_plus: - dependency: "direct main" - description: - path: "packages/sensors_plus" - relative: true - source: path - version: "6.1.0-ohos.1" - sensors_plus_ohos: - dependency: transitive - description: - path: "packages/sensors_plus_ohos" - relative: true - source: path - version: "1.0.1" - sensors_plus_platform_interface: - dependency: "direct overridden" - description: - path: "packages/sensors_plus_platform_interface" - relative: true - source: path - version: "2.0.0" - sentry: - dependency: transitive - description: - name: sentry - sha256: f04095a25ff02b202a914174c73ec309570aa93d61098cb4a0a9e715b4aaa465 - url: "https://pub.flutter-io.cn" - source: hosted - version: "9.20.0" - share_plus: - dependency: "direct main" - description: - path: "packages/share_plus" - relative: true - source: path - version: "13.1.0-ohos.1" - share_plus_ohos: - dependency: transitive - description: - path: "packages/share_plus_ohos" - relative: true - source: path - version: "12.0.1" - share_plus_platform_interface: - dependency: transitive - description: - name: share_plus_platform_interface - sha256: "7f7ae28cf400d13f811e297ff37742dba83b79e0a6f5dce14eec0248274e6ce9" - url: "https://pub.flutter-io.cn" - source: hosted - version: "7.1.0" - shared_preferences: - dependency: "direct main" - description: - path: "packages/shared_preferences" - relative: true - source: path - version: "2.5.5-ohos.1" - shared_preferences_android: - dependency: transitive - description: - name: shared_preferences_android - sha256: e8d4762b1e2e8578fc4d0fd548cebf24afd24f49719c08974df92834565e2c53 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.23" - shared_preferences_foundation: - dependency: transitive - description: - name: shared_preferences_foundation - sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.5.6" - shared_preferences_linux: - dependency: transitive - description: - name: shared_preferences_linux - sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.1" - shared_preferences_ohos: - dependency: transitive - description: - path: "packages/shared_preferences_ohos" - relative: true - source: path - version: "2.5.4" - shared_preferences_platform_interface: - dependency: transitive - description: - name: shared_preferences_platform_interface - sha256: "649dc798a33931919ea356c4305c2d1f81619ea6e92244070b520187b5140ef9" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.2" - shared_preferences_web: - dependency: transitive - description: - name: shared_preferences_web - sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.3" - shared_preferences_windows: - dependency: transitive - description: - name: shared_preferences_windows - sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.1" - shelf: - dependency: "direct main" - description: - name: shelf - sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.4.2" - shelf_packages_handler: - dependency: transitive - description: - name: shelf_packages_handler - sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.2" - shelf_router: - dependency: "direct main" - description: - name: shelf_router - sha256: f5e5d492440a7fb165fe1e2e1a623f31f734d3370900070b2b1e0d0428d59864 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.4" - shelf_static: - dependency: transitive - description: - name: shelf_static - sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.3" - shelf_web_socket: - dependency: "direct main" - description: - name: shelf_web_socket - sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.0" - shimmer: - dependency: "direct main" - description: - name: shimmer - sha256: "5f88c883a22e9f9f299e5ba0e4f7e6054857224976a5d9f839d4ebdc94a14ac9" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.0" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - sliver_tools: - dependency: "direct main" - description: - name: sliver_tools - sha256: eae28220badfb9d0559207badcbbc9ad5331aac829a88cb0964d330d2a4636a6 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.2.12" - source_gen: - dependency: transitive - description: - name: source_gen - sha256: ec37cc0e6694374cbef59ed79685572c870a54ede6fa30a3e420feb3adffea02 - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.2.3" - source_helper: - dependency: transitive - description: - name: source_helper - sha256: "6a3c6cc82073a8797f8c4dc4572146114a39652851c157db37e964d9c7038723" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.3.8" - source_map_stack_trace: - dependency: transitive - description: - name: source_map_stack_trace - sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.2" - source_maps: - dependency: transitive - description: - name: source_maps - sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.10.13" - source_span: - dependency: transitive - description: - name: source_span - sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.10.2" - speech_to_text: - dependency: "direct main" - description: - path: "packages/speech_to_text" - relative: true - source: path - version: "7.4.0-ohos.1" - speech_to_text_platform_interface: - dependency: transitive - description: - name: speech_to_text_platform_interface - sha256: a7e16e02853853ed7534ac2bde9a1c4f39c8879970a7974ac6ff832d4bdaa4b0 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.0" - speech_to_text_windows: - dependency: transitive - description: - name: speech_to_text_windows - sha256: "2d1d10565b23262386b453b33656299608dc7a66784453735d6c1318f13f44d7" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.1" - sprintf: - dependency: transitive - description: - name: sprintf - sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" - url: "https://pub.flutter-io.cn" - source: hosted - version: "7.0.0" - sqflite: - dependency: "direct main" - description: - path: "packages/sqflite" - relative: true - source: path - version: "2.4.1-ohos.1" - sqflite_android: - dependency: transitive - description: - name: sqflite_android - sha256: "881e28efdcc9950fd8e9bb42713dcf1103e62a2e7168f23c9338d82db13dec40" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.2+3" - sqflite_common: - dependency: transitive - description: - name: sqflite_common - sha256: "1581ffbf7a0e333b380d6a30737d78516b826cb35beb7fb0bf8a3ea0c678b465" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.5.8" - sqflite_darwin: - dependency: transitive - description: - name: sqflite_darwin - sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.2" - sqflite_ohos: - dependency: "direct overridden" - description: - path: "packages/sqflite_ohos" - relative: true - source: path - version: "2.4.1-ohos.1" - sqflite_platform_interface: - dependency: transitive - description: - name: sqflite_platform_interface - sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.0" - sqlite3: - dependency: transitive - description: - name: sqlite3 - sha256: "3145bd74dcdb4fd6f5c6dda4d4e4490a8087d7f286a14dee5d37087290f0f8a2" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.9.4" - sqlite3_flutter_libs: - dependency: "direct main" - description: - name: sqlite3_flutter_libs - sha256: eeb9e3a45207649076b808f8a5a74d68770d0b7f26ccef6d5f43106eee5375ad - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.5.42" - sqlparser: - dependency: transitive - description: - name: sqlparser - sha256: "337e9997f7141ffdd054259128553c348635fa318f7ca492f07a4ab76f850d19" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.43.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.12.1" - state_notifier: - dependency: transitive - description: - name: state_notifier - sha256: b8677376aa54f2d7c58280d5a007f9e8774f1968d1fb1c096adcb4792fba29bb - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.0" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.4" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.1" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.4.1" - stupid_simple_sheet: - dependency: "direct main" - description: - name: stupid_simple_sheet - sha256: "418a2b5531d7f015f8b2161ad296760049516407dbcb08f91ac4b9062a7938f0" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.9.1+1" - syncfusion_flutter_charts: - dependency: "direct main" - description: - name: syncfusion_flutter_charts - sha256: "8367eb7b9941e33158f34c3e903e19897542b19423f9a91897aaafe4228298ca" - url: "https://pub.flutter-io.cn" - source: hosted - version: "28.2.12" - syncfusion_flutter_core: - dependency: transitive - description: - name: syncfusion_flutter_core - sha256: f1d2b52697543e13bdefdc62d15868124a265987577f53224a7dbe176c8448f0 - url: "https://pub.flutter-io.cn" - source: hosted - version: "28.2.12" - synchronized: - dependency: transitive - description: - name: synchronized - sha256: "63896c27e81b28f8cb4e69ead0d3e8f03f1d1e5fc531a3e579cabed6a2c7c9e5" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.4.0+1" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.2.2" - test: - dependency: transitive - description: - name: test - sha256: "280d6d890011ca966ad08df7e8a4ddfab0fb3aa49f96ed6de56e3521347a9ae7" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.30.0" - test_api: - dependency: transitive - description: - name: test_api - sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.7.10" - test_core: - dependency: transitive - description: - name: test_core - sha256: "0381bd1585d1a924763c308100f2138205252fb90c9d4eeaf28489ee65ccde51" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.6.16" - time: - dependency: transitive - description: - name: time - sha256: "46187cf30bffdab28c56be9a63861b36e4ab7347bf403297595d6a97e10c789f" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.1.6" - timeago: - dependency: "direct main" - description: - name: timeago - sha256: b05159406a97e1cbb2b9ee4faa9fb096fe0e2dfcd8b08fcd2a00553450d3422e - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.7.1" - timezone: - dependency: "direct main" - description: - name: timezone - sha256: "784a5e34d2eb62e1326f24d6f600aaaee452eb8ca8ef2f384a59244e292d158b" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.11.0" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.4.0" - universal_io: - dependency: transitive - description: - name: universal_io - sha256: f63cbc48103236abf48e345e07a03ce5757ea86285ed313a6a032596ed9301e2 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.3.1" - unorm_dart: - dependency: transitive - description: - name: unorm_dart - sha256: "0c69186b03ca6addab0774bcc0f4f17b88d4ce78d9d4d8f0619e30a99ead58e7" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.3.2" - upower: - dependency: transitive - description: - name: upower - sha256: cf042403154751180affa1d15614db7fa50234bc2373cd21c3db666c38543ebf - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.7.0" - url_launcher: - dependency: "direct main" - description: - path: "packages/url_launcher" - relative: true - source: path - version: "6.3.2-ohos.1" - url_launcher_android: - dependency: transitive - description: - name: url_launcher_android - sha256: "3bb000251e55d4a209aa0e2e563309dc9bb2befea2295fd0cec1f51760aac572" - url: "https://pub.flutter-io.cn" - source: hosted - version: "6.3.29" - url_launcher_ios: - dependency: transitive - description: - name: url_launcher_ios - sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0" - url: "https://pub.flutter-io.cn" - source: hosted - version: "6.4.1" - url_launcher_linux: - dependency: transitive - description: - name: url_launcher_linux - sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.2.2" - url_launcher_macos: - dependency: transitive - description: - name: url_launcher_macos - sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.2.5" - url_launcher_ohos: - dependency: transitive - description: - path: "packages/url_launcher_ohos" - relative: true - source: path - version: "6.3.2" - url_launcher_platform_interface: - dependency: transitive - description: - name: url_launcher_platform_interface - sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.3.2" - url_launcher_web: - dependency: transitive - description: - name: url_launcher_web - sha256: "85c81589622fbc87c1c683aaea164d3604a7777495a79d91e39ffcdec39ddb34" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.3" - url_launcher_windows: - dependency: transitive - description: - name: url_launcher_windows - sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.5" - uuid: - dependency: "direct main" - description: - name: uuid - sha256: "1fef9e8e11e2991bb773070d4656b7bd5d850967a2456cfc83cf47925ba79489" - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.5.3" - value_layout_builder: - dependency: "direct main" - description: - name: value_layout_builder - sha256: ab4b7d98bac8cefeb9713154d43ee0477490183f5aa23bb4ffa5103d9bbf6275 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.5.0" - vector_graphics: - dependency: transitive - description: - name: vector_graphics - sha256: "4d35a36400983c3457c289d4d553b5308f506ea84f7e51c7a564651b5525209a" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.2.1" - vector_graphics_codec: - dependency: transitive - description: - name: vector_graphics_codec - sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.13" - vector_graphics_compiler: - dependency: transitive - description: - name: vector_graphics_compiler - sha256: "98e7e94de127b46a86ef46197fff84ff99f3d3b80a708390d717ad731efef598" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.2.2" - vector_math: - dependency: "direct main" - description: - name: vector_math - sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.2.0" - video_compress: - dependency: "direct main" - description: - path: "packages/video_compress" - relative: true - source: path - version: "3.1.2-ohos.1" - video_player: - dependency: "direct main" - description: - path: "packages/video_player" - relative: true - source: path - version: "2.10.0-ohos.1" - video_player_android: - dependency: transitive - description: - name: video_player_android - sha256: "877a6c7ba772456077d7bfd71314629b3fe2b73733ce503fc77c3314d43a0ca0" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.9.5" - video_player_avfoundation: - dependency: transitive - description: - name: video_player_avfoundation - sha256: a39d6f28f8069564d8cc17396472f958dd9eaddf2d5c8e90aad4d793ac369bf3 - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.9.6" - video_player_ohos: - dependency: "direct overridden" - description: - path: "packages/video_player_ohos" - relative: true - source: path - version: "1.0.0+2" - video_player_platform_interface: - dependency: transitive - description: - name: video_player_platform_interface - sha256: "16eaed5268c571c31840dc58ef8da5f0cd4db2a98490c3b8f1cf70122546c6e0" - url: "https://pub.flutter-io.cn" - source: hosted - version: "6.7.0" - video_player_web: - dependency: transitive - description: - name: video_player_web - sha256: "9f3c00be2ef9b76a95d94ac5119fb843dca6f2c69e6c9968f6f2b6c9e7afbdeb" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.4.0" - visibility_detector: - dependency: "direct main" - description: - name: visibility_detector - sha256: dd5cc11e13494f432d15939c3aa8ae76844c42b723398643ce9addb88a5ed420 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.4.0+2" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360" - url: "https://pub.flutter-io.cn" - source: hosted - version: "15.2.0" - wakelock_plus: - dependency: "direct main" - description: - path: "packages/wakelock_plus" - relative: true - source: path - version: "1.4.0-ohos.1" - wakelock_plus_platform_interface: - dependency: transitive - description: - name: wakelock_plus_platform_interface - sha256: b13f99e992e7ae6a152e16c5559d3c07ff445b13330192662494e614ca3e7d7b - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.5.1" - watcher: - dependency: transitive - description: - name: watcher - sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.2.1" - web: - dependency: "direct overridden" - description: - name: web - sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.1" - web_socket: - dependency: transitive - description: - name: web_socket - sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.0.1" - web_socket_channel: - dependency: "direct main" - description: - name: web_socket_channel - sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.3" - webkit_inspection_protocol: - dependency: transitive - description: - name: webkit_inspection_protocol - sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.2.1" - webrtc_interface: - dependency: transitive - description: - name: webrtc_interface - sha256: c6f100eac5057d9a817a60473126f9828c796d42884d498af4f339c97b21014f - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.5.1" - wifi_iot: - dependency: "direct main" - description: - path: "packages/wifi_iot" - relative: true - source: path - version: "0.3.19-ohos.1" - win32: - dependency: "direct overridden" - description: - path: "packages/win32" - relative: true - source: path - version: "6.2.0" - win32_registry: - dependency: transitive - description: - name: win32_registry - sha256: "73b1d78920a9d6e03f8b4e43e612b87bf3152a0e5c5e5150267762b7c4116904" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.3" - workmanager: - dependency: "direct main" - description: - path: "packages/workmanager" - relative: true - source: path - version: "0.9.0-ohos.1" - workmanager_android: - dependency: transitive - description: - name: workmanager_android - sha256: "9ae744db4ef891f5fcd2fb8671fccc712f4f96489a487a1411e0c8675e5e8cb7" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.9.0+2" - workmanager_apple: - dependency: transitive - description: - name: workmanager_apple - sha256: "1cc12ae3cbf5535e72f7ba4fde0c12dd11b757caf493a28e22d684052701f2ca" - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.9.1+2" - workmanager_ohos: - dependency: "direct overridden" - description: - path: "packages/workmanager_ohos" - relative: true - source: path - version: "0.9.0-ohos.1" - workmanager_platform_interface: - dependency: transitive - description: - name: workmanager_platform_interface - sha256: f40422f10b970c67abb84230b44da22b075147637532ac501729256fcea10a47 - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.9.1+1" - xdg_directories: - dependency: transitive - description: - name: xdg_directories - sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.0" - xml: - dependency: transitive - description: - name: xml - sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" - url: "https://pub.flutter-io.cn" - source: hosted - version: "6.6.1" - yaml: - dependency: transitive - description: - name: yaml - sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.3" - yaml_edit: - dependency: transitive - description: - name: yaml_edit - sha256: "07c9e63ba42519745182b88ca12264a7ba2484d8239958778dfe4d44fe760488" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.2.4" -sdks: - dart: ">=3.11.5 <4.0.0" - flutter: ">=3.41.0" diff --git a/pubspec.macos.yaml b/pubspec.macos.yaml new file mode 100644 index 00000000..1dccc023 --- /dev/null +++ b/pubspec.macos.yaml @@ -0,0 +1,323 @@ +# ============================================================ +# 闲言APP (Xianyan) — MacBook Pro端 pubspec 模板 +# 创建时间: 2026-06-02 +# 更新时间: 2026-06-02 +# 作用: MacBook Pro端(iOS/macOS)依赖与资源配置模板(使用远程版本号) +# 上次更新: 从鸿蒙端模板派生,本地包替换为远程版本号,dependency_overrides精简 +# 使用方式: 运行 tools/setup_pubspec.ps1 --platform macos 自动生成 pubspec.yaml +# ⚠️ 此文件为模板,不要直接重命名为 pubspec.yaml 使用 +# ⚠️ 新增三方库时,必须同步更新 pubspec.ohos.yaml 和 pubspec.macos.yaml +# ============================================================ + +name: xianyan +description: "闲言 — 文字阅读更纯粹。句子阅读 + 壁纸制作 APP" +publish_to: 'none' +version: 6.6.2+26060202 +# 年月日-次 8位 + +environment: + sdk: ^3.11.5 + +# ============================================================ +# 依赖 — MacBook Pro端使用远程版本号 +# ============================================================ +dependencies: + flutter: + sdk: flutter + + # iOS 风格图标 + cupertino_icons: ^1.0.8 # iOS风格图标库 + + # --- 状态管理 + 依赖注入 --- + flutter_riverpod: ^3.0.0 # 响应式状态管理+依赖注入 + riverpod_annotation: ^4.0.0 # Riverpod代码生成注解 + + # --- 路由 --- + go_router: ^17.2.3 # 声明式路由导航(纯Dart-鸿蒙零适配) + + # --- 网络请求 --- + dio: ^5.4.0 # HTTP客户端+拦截器 + dio_cache_interceptor: ^3.5.0 # Dio HTTP缓存拦截器 + http_cache_file_store: ^2.0.1 # 文件系统缓存存储 + + # --- 本地数据库 --- + drift: ^2.16.0 # 类型安全SQLite ORM + sqlite3_flutter_libs: ^0.5.0 # SQLite原生库绑定 + + # --- 数据模型 --- + freezed_annotation: ^3.0.0 # 不可变数据类注解 + json_annotation: ^4.9.0 # JSON序列化注解 + + # --- KV 存储 --- + shared_preferences: ^2.5.5 # 轻量KV持久化 + flutter_secure_storage: ^10.2.0 # 加密安全存储 + hive_ce: ^2.0.0 # 高性能NoSQL数据库(社区维护版) + hive_flutter: ^1.1.0 # Hive Flutter适配 + + # --- 文件路径 --- + path_provider: ^2.1.5 # 系统目录路径获取 + path: ^1.9.0 # 路径操作工具 + + # --- 工具 --- + uuid: ^4.5.0 # UUID生成器 + intl: ^0.20.2 # 国际化+日期格式化 + timeago: ^3.7.0 # 相对时间格式化(国际化) + logger: ^2.5.0 # 分级日志输出 + collection: ^1.19.0 # 集合操作扩展 + dartx: ^1.2.0 # 集合安全扩展方法(firstOrNull/getOrNull等) + syncfusion_flutter_charts: ^28.1.36 # Syncfusion图表库(替代fl_chart) + + # --- 设备信息 --- + package_info_plus: ^10.1.0 # 应用包信息读取 + connectivity_plus: ^7.1.1 # 网络连接状态监听 + device_info_plus: ^13.1.0 # 设备硬件信息读取 + + # --- 日历同步 --- + device_calendar: ^4.3.3 # 跨平台日历事件读写 + + # --- 权限 --- + permission_handler: ^12.0.1 # 运行时权限请求 + + # --- 本地通知 --- + flutter_local_notifications: ^21.0.0 # 本地推送通知 + + # --- 后台任务调度 --- + workmanager: ^0.9.0 # 后台任务调度 + + # --- 外部链接 --- + url_launcher: ^6.3.2 # 打开外部URL/应用 + app_links: ^7.0.0 # 深度链接处理 + + # --- 快捷操作 --- + quick_actions: ^1.1.0 # 主屏幕快捷操作(iOS Quick Actions / Android App Shortcuts) + + # --- 桌面小组件 --- + home_widget: ^0.9.1 # iOS/Android桌面小组件 + + # --- iOS 26 Liquid Glass 组件 --- + liquid_glass_widgets: ^0.11.0 # iOS26液态玻璃组件库 + liquid_glass_easy: ^1.1.1 # 液态玻璃效果封装 + + # --- 底部面板 + Hero 动画 --- + stupid_simple_sheet: ^0.9.1+1 # 简易底部弹出面板 + heroine: ^0.7.2 # Hero过渡动画增强 + + file_picker: ^12.0.0-beta.5 # 文件选择器(⚠️ 12.x兼容win32 6.x,见iOS_macOS_Developer_Guide.md §2.6) + image_picker: ^1.2.2 # 相机/相册选图 + adaptive_palette: ^3.0.0 # 图片主色提取+流体背景 + + # --- UI 基础 --- + badges: ^3.2.0 # 角标/徽章组件 + google_fonts: ^8.1.0 # Google字体加载 + cached_network_image: ^3.3.0 # 网络图片缓存+占位 + flutter_cache_manager: ^3.3.0 # 文件缓存管理 + shimmer: ^3.0.0 # 骨架屏加载占位 + + # --- 分享 + 导出 --- + share_plus: ^13.1.0 # 系统分享面板 + qr_flutter: ^4.1.0 # 二维码渲染 + gal: ^2.3.0 # 保存图片/视频到相册 + archive: ^4.0.0 # ZIP压缩/解压 + crypto: ^3.0.0 # 加密哈希算法 + encrypt: ^5.0.3 # 对称/非对称加密 + mailer: ^7.1.0 # SMTP邮件发送 + + # --- 图片处理 --- + image: ^4.3.0 # 图片解码/编码/变换 + + # --- 图片编辑器 --- + pro_image_editor: ^12.4.4 # 图片编辑器核心(官方版) + + # --- 桌面端增强 --- + desktop_drop: ^0.5.0 # 桌面端文件拖放接收 + window_manager: ^0.5.1 # 桌面端窗口管理(替代bitsdojo_window) + + # --- 异常捕获 --- + catcher_2: ^2.1.9 # 全局异常捕获+上报 + + # --- SVG 渲染 --- + flutter_svg: ^2.0.0 # SVG图片渲染 + + # --- 富文本编辑器 --- + flutter_quill: ^11.5.0 # Quill富文本编辑器 + + # --- 虚线边框 --- + dotted_border: ^3.1.0 # 虚线/点线边框装饰 + + # --- 颜色选择器 --- + flex_color_picker: ^3.8.0 # HSL颜色选择器 + + # --- 键盘可见性 --- + flutter_keyboard_visibility: ^6.0.0 # 键盘可见性监听(替代MediaQuery轮询) + + # --- 屏幕适配 --- + flutter_screenutil: ^5.9.0 # 屏幕尺寸适配 + + # --- 动画 --- + rive: ^0.14.7 # Rive交互式动画引擎 + flutter_animate: ^4.5.0 # 声明式动画库 + flutter_card_swiper: ^7.2.0 # 卡片滑动切换 + animations: ^2.0.11 # Material过渡动画 + lottie: ^3.3.0 # Lottie动画播放 + confetti: ^0.8.0 # 撒花/彩纸效果 + animate_do: ^5.1.0 # 常用入场/出场动画 + + # --- 交互增强 --- + custom_refresh_indicator: ^4.0.1 # 自定义下拉刷新 + + # --- 列表交互 --- + flutter_slidable: ^4.0.3 # 列表项滑动操作 + flutter_sticky_header: ^0.8.0 # 粘性头部 + flutter_staggered_animations: ^1.1.1 # 列表交错入场动画 + value_layout_builder: ^0.5.0 # 值变化触发布局重建 + + # --- 内容渲染 --- + flutter_markdown_plus: ^1.0.1 # Markdown渲染 + flutter_html: ^3.0.0-beta.2 # HTML内容渲染 + + # --- RSS订阅 --- + rss_dart: ^1.0.12 # RSS/Atom订阅源解析(Dart3兼容webfeed分支) + + # --- 拼音转换 --- + pinyin: ^3.3.0 # 汉字转拼音 + + # --- 语音朗读 --- + flutter_tts: ^4.2.0 # TTS文本转语音朗读 + + # --- 语音识别 --- + speech_to_text: ^7.4.0 # 语音转文字 + + # --- 灵动岛/实时活动 --- + live_activities: ^2.4.9 # 灵动岛/实时活动 + + # --- iOS风格组件 --- + pull_down_button: ^0.10.1 # iOS下拉菜单按钮 + + # --- 布局增强 --- + sliver_tools: ^0.2.12 # Sliver工具集 + flutter_staggered_grid_view: ^0.7.0 # 瀑布流网格 + visibility_detector: ^0.4.0+2 # 组件可见性检测 + + # --- 触觉反馈 --- + flutter_vibrate: + git: + url: https://gitcode.com/openharmony-sig/fluttertpc_flutter_vibrate.git # 跨平台触觉反馈(iOS/Android/HarmonyOS) + + # --- 提示反馈 --- + bot_toast: ^4.1.0 # Toast/通知弹窗 + + # --- Shader效果 --- + flutter_shaders_ui: ^0.1.0 # Fragment Shader效果 + flutter_tilt: ^4.0.0 # 3D倾斜交互效果 + flutter_3d_controller: 2.3.0 # 3D模型加载控制 + flutter_advanced_canvas_editor: 2.1.0 # 高级画布编辑器 + flutter_spritesheet_animation: ^1.0.1 # 精灵图帧动画 + image_size_getter: ^2.4.1 # 图片尺寸读取(无需解码) + extended_image: ^10.0.1 # 图片缓存+缩放+裁剪 + photo_view: ^0.15.0 # 图片缩放/平移查看 + flutter_image_compress: ^2.4.0 # 图片压缩(保持EXIF) + + vector_math: any # 向量数学运算 + wakelock_plus: ^1.4.0 # 屏幕常亮控制 + audioplayers: ^6.5.0 # 音频播放 + record: ^6.0.0 # 录音 + video_compress: ^3.1.2 # 视频压缩 + video_player: ^2.10.0 # 视频播放 + local_auth: ^3.0.1 # 生物识别认证 + sensors_plus: ^6.1.0 # 加速度传感器 + battery_plus: ^7.0.0 # 电池状态监听 + + # --- 文件传输助手 --- + shelf: ^1.4.0 # HTTP服务器框架 + shelf_router: ^1.1.0 # 路由中间件 + shelf_web_socket: ^3.0.0 # WebSocket支持 + network_info_plus: ^8.1.0 # WiFi网络信息 + flutter_webrtc: ^1.4.0 # WebRTC音视频通信 + web_socket_channel: ^3.0.3 # WebSocket客户端 + flutter_blue_plus: ^2.1.0 # 蓝牙BLE通信 + flutter_nfc_kit: ^3.6.0 # NFC读写 + mime: ^2.0.0 # MIME类型识别 + mobile_scanner: ^7.1.4 # 二维码/条形码扫描 + basic_utils: ^5.7.0 # 通用工具集(Base64/ASN1) + wifi_iot: ^0.3.19 # WiFi IoT设备连接 + nearby_service: ^0.2.1 # 近场设备发现+通信 + + flutter_localizations: + sdk: flutter # Flutter国际化支持 + timezone: ^0.11.0 # 时区数据库 + sqflite: ^2.4.1 # SQLite轻量数据库 + cross_file: any # 跨平台文件抽象 + receive_sharing_intent: + git: + url: "https://gitcode.com/openharmony-sig/fluttertpc_receive_sharing_intent.git" + ref: "br_v1.8.1_ohos" + + +# ============================================================ +# 开发依赖 +# ============================================================ + +dev_dependencies: + flutter_test: + sdk: flutter + + # 代码生成 + build_runner: ^2.6.0 # 代码生成运行器 + freezed: ^3.2.0 # 不可变数据类生成 + json_serializable: ^6.11.0 # JSON序列化代码生成 + drift_dev: ^2.31.0 # Drift数据库代码生成 + riverpod_generator: ^4.0.0 # Riverpod Provider代码生成 + + # 代码规范 + flutter_lints: ^5.0.0 # Flutter lint规则 + riverpod_lint: ^3.0.0 # Riverpod专用lint + custom_lint: ^0.8.0 # 自定义lint插件 + + # 测试 + mocktail: ^1.0.0 # Mock测试库 + + +# ============================================================ +# 依赖覆写 — MacBook Pro端(仅版本号覆盖,无本地包) +# 1. liquid_glass_widgets与flutter_test的meta版本冲突 +# 2. share_plus 13.x / device_info_plus 13.x 需要win32 ^6.0.1 +# 但 quill_native_bridge_windows 依赖 win32 ^5.5.0 +# 3. device_calendar ^4.3.3 依赖 timezone ^0.9.0(<0.10.0) +# 但 flutter_local_notifications 依赖 timezone ^0.11.0(<0.12.0) +# timezone 0.9→0.11 API兼容(仅时区数据更新),强制使用^0.11.0 +# ============================================================ +dependency_overrides: + meta: ^1.17.0 + web: ^1.1.0 + timezone: ^0.11.0 + win32: ^6.0.1 + +# ============================================================ +# Flutter 配置 +# ============================================================ +flutter: + uses-material-design: true + + assets: + - assets/animations/ + - assets/images/ + - assets/templates/resized/ + - assets/svgs/ + - assets/svgs/categories/ + - assets/svgs/editor/ + - assets/spritesheets/builtin/ + - assets/spritesheets/builtin/emotions/ + - assets/spritesheets/builtin/gestures/ + - assets/spritesheets/builtin/nature/ + - assets/spritesheets/builtin/festive/ + - assets/models/3d/ + - assets/models/thumbnails/ + - assets/model_catalog.json + - assets/data/ + - assets/data/leisure/ + - assets/sounds/ + - assets/sounds/sfx/ + - assets/sounds/sfx/sfx/ + - assets/sounds/sfx/sfx_soft/ + - assets/sounds/sfx/sfx_crisp/ + - assets/shaders/ diff --git a/pubspec.yaml b/pubspec.ohos.yaml similarity index 96% rename from pubspec.yaml rename to pubspec.ohos.yaml index 5ef8a693..2a1bba13 100644 --- a/pubspec.yaml +++ b/pubspec.ohos.yaml @@ -1,10 +1,11 @@ # ============================================================ -# 闲言APP (Xianyan) — Flutter 版 pubspec.yaml +# 闲言APP (Xianyan) — 鸿蒙端 pubspec 模板 # 创建时间: 2026-04-20 # 更新时间: 2026-06-02 -# 作用: 项目依赖与资源配置 -# 上次更新: bitsdojo_window替换为window_manager桌面端窗口管理 -# **python**: C:\Users\无书\AppData\Local\Python\pythoncore-3.14-64\python.exe +# 作用: 鸿蒙端依赖与资源配置模板(使用本地 packages/ 目录) +# 上次更新: pubspec.yaml 拆分为双模板(ohos/macos),pubspec.yaml 不再提交 +# 使用方式: 运行 tools/setup_pubspec.ps1 --platform ohos 自动生成 pubspec.yaml +# ⚠️ 此文件为模板,不要直接重命名为 pubspec.yaml 使用 # ============================================================ name: xianyan @@ -320,12 +321,10 @@ dev_dependencies: # ============================================================ -# 依赖覆写 — 解决版本冲突 +# 依赖覆写 — 鸿蒙端(本地包覆盖 + 版本冲突解决) # 1. liquid_glass_widgets与flutter_test的meta版本冲突 -# 2. share_plus 13.x / device_info_plus 13.x 需要win32 ^6.0.1 -# 但 quill_native_bridge_windows 依赖 win32 ^5.5.0 -# 3. 本地化包覆写:让远程依赖的库也使用本地path版本 -# 4. device_calendar ^4.3.3 依赖 timezone ^0.9.0(<0.10.0) +# 2. 本地化包覆写:让远程依赖的库也使用本地path版本 +# 3. device_calendar ^4.3.3 依赖 timezone ^0.9.0(<0.10.0) # 但 flutter_local_notifications 依赖 timezone ^0.11.0(<0.12.0) # timezone 0.9→0.11 API兼容(仅时区数据更新),强制使用^0.11.0 # ============================================================ diff --git a/tools/setup_pubspec.ps1 b/tools/setup_pubspec.ps1 new file mode 100644 index 00000000..c5cb7093 --- /dev/null +++ b/tools/setup_pubspec.ps1 @@ -0,0 +1,137 @@ +# ============================================================ +# 闲言APP — pubspec.yaml 平台模板生成脚本 +# 创建时间: 2026-06-02 +# 更新时间: 2026-06-02 +# 作用: 根据平台选择模板生成 pubspec.yaml +# 上次更新: 初始版本 +# 用法: +# .\tools\setup_pubspec.ps1 -Platform ohos # 鸿蒙端 +# .\tools\setup_pubspec.ps1 -Platform macos # MacBook Pro端 +# .\tools\setup_pubspec.ps1 # 自动检测平台 +# ============================================================ + +param( + [ValidateSet("ohos", "macos", "auto")] + [string]$Platform = "auto" +) + +$ErrorActionPreference = "Stop" + +$ProjectRoot = $PSScriptRoot +if ($ProjectRoot) { + $ProjectRoot = Split-Path -Parent $ProjectRoot +} +if (-not $ProjectRoot) { + $ProjectRoot = Split-Path -Parent $MyInvocation.MyCommand.Definition + if ($ProjectRoot) { + $ProjectRoot = Split-Path -Parent $ProjectRoot + } +} +if (-not $ProjectRoot) { + $ProjectRoot = (Get-Location).Path +} + +$OhosTemplate = Join-Path $ProjectRoot "pubspec.ohos.yaml" +$MacosTemplate = Join-Path $ProjectRoot "pubspec.macos.yaml" +$OutputFile = Join-Path $ProjectRoot "pubspec.yaml" + +function Write-Status { + param([string]$Message) + Write-Host "[setup_pubspec] $Message" -ForegroundColor Cyan +} + +function Write-Warning { + param([string]$Message) + Write-Host "[setup_pubspec] WARNING: $Message" -ForegroundColor Yellow +} + +function Write-Error { + param([string]$Message) + Write-Host "[setup_pubspec] ERROR: $Message" -ForegroundColor Red +} + +# --- 自动检测平台 --- +if ($Platform -eq "auto") { + Write-Status "Auto-detecting platform..." + + $flutterPath = Get-Command flutter -ErrorAction SilentlyContinue + if ($flutterPath) { + $flutterVersion = & flutter --version 2>&1 | Select-String -Pattern "ohos|HarmonyOS" -Quiet + if ($flutterVersion) { + $Platform = "ohos" + Write-Status "Detected flutter-ohos SDK -> ohos" + } else { + $Platform = "macos" + Write-Status "Detected official Flutter SDK -> macos" + } + } else { + # 检查 packages 目录是否存在 + $packagesDir = Join-Path $ProjectRoot "packages" + if (Test-Path $packagesDir) { + $Platform = "ohos" + Write-Status "Found packages/ directory -> ohos" + } else { + $Platform = "macos" + Write-Status "No packages/ directory -> macos" + } + } +} + +# --- 选择模板 --- +$TemplateFile = switch ($Platform) { + "ohos" { $OhosTemplate } + "macos" { $MacosTemplate } +} + +if (-not (Test-Path $TemplateFile)) { + Write-Error "Template file not found: $TemplateFile" + Write-Error "Expected: pubspec.ohos.yaml or pubspec.macos.yaml in project root" + exit 1 +} + +# --- 备份现有 pubspec.yaml --- +if (Test-Path $OutputFile) { + $BackupFile = Join-Path $ProjectRoot "pubspec.yaml.bak" + Copy-Item $OutputFile $BackupFile -Force + Write-Status "Backed up existing pubspec.yaml -> pubspec.yaml.bak" +} + +# --- 复制模板 --- +Copy-Item $TemplateFile $OutputFile -Force + +$PlatformLabel = switch ($Platform) { + "ohos" { "鸿蒙端 (HarmonyOS)" } + "macos" { "MacBook Pro端 (iOS/macOS)" } +} + +Write-Status "========================================" +Write-Status "Generated pubspec.yaml for: $PlatformLabel" +Write-Status "Template: $(Split-Path $TemplateFile -Leaf)" +Write-Status "Output: pubspec.yaml" +Write-Status "========================================" + +# --- 验证关键差异 --- +if ($Platform -eq "ohos") { + $hasPathRef = Select-String -Path $OutputFile -Pattern "path: packages/" -Quiet + if (-not $hasPathRef) { + Write-Warning "ohos template has no 'path: packages/' references - check template!" + } + Write-Status "Next steps:" + Write-Status " 1. flutter pub get" + Write-Status " 2. flutter build hap (or your ohos build command)" +} else { + $hasPathRef = Select-String -Path $OutputFile -Pattern "path: packages/" -Quiet + if ($hasPathRef) { + Write-Warning "macos template still has 'path: packages/' references - check template!" + } + Write-Status "Next steps:" + Write-Status " 1. flutter pub get" + Write-Status " 2. Apply pub cache patches (see iOS_macOS_Developer_Guide.md section 2.6)" + Write-Status " 3. flutter build ios --no-codesign" + Write-Status " 4. flutter build macos" +} + +Write-Status "" +Write-Status "NOTE: pubspec.yaml is in .gitignore and will NOT be committed." +Write-Status "When adding a new dependency, update BOTH pubspec.ohos.yaml AND pubspec.macos.yaml" +Write-Status "Then update iOS_macOS_Developer_Guide.md to notify the other platform developer."