Merge pull request 'Harmony 3.41.9' (#1) from harmony_3.41.9 into main

Reviewed-on: #1
This commit was merged in pull request #1.
This commit is contained in:
guangfei.zhao
2026-09-03 16:58:35 +08:00
99 changed files with 1262 additions and 1266 deletions
+19 -11
View File
@@ -1,6 +1,6 @@
# conti-retail-app
大陆马门店 App。Flutter + Melos 单仓多包。
Conti-Retail-App。Flutter + Melos 单仓多包。
架构约束全部来自相邻仓库 `conti-docs/` 的 01–14 号文档。**本仓库对这些文档的
偏离,逐条记在 [SCAFFOLD-NOTES.md](SCAFFOLD-NOTES.md)**——那份文件是回写文档的
@@ -25,7 +25,7 @@ melos run gen
# 3. 跑起来
cd app
flutter run --flavor dev -t lib/main_dev.dart --dart-define-from-file=env/dev.json
flutter run --flavor dev
```
- 或者安装vscodeflutter插件并修改launch.json F5运行
```
@@ -47,13 +47,9 @@ flutter run --flavor dev -t lib/main_dev.dart --dart-define-from-file=env/dev.js
}
```
`--flavor` / `-t` / `--dart-define-from-file` **三个参数缺一不可**:
- 少了 `--dart-define-from-file`,`AppEnv.fromDartDefine` 会在启动瞬间抛错。
这是故意的——带着空 baseUrl 跑起来,问题会在第一个请求 404 时才暴露。
- 少了 `-t`,Flutter 会去找 `lib/main.dart`,本仓库没有这个文件。
VS Code / Android Studio 用户建议把三条 flavor 配进 `launch.json`。
项目只有一个 Dart 入口 `lib/main.dart`。`--flavor dev|uat|prod` 仍用于选择
Android/iOS 的原生包变体,同时 Flutter 会通过 `appFlavor` 选择对应的内置环境
配置。未传 flavor 时默认使用 dev,因此 DevEco 的普通 HAP 构建无需额外入口配置。
## 环境与工具链版本
@@ -112,6 +108,18 @@ melos run format # dart format --set-exit-if-changed
melos run test # flutter test --coverage
```
### OHOS(`harmony` 分支)构建
`enable-ohos.ps1` 只为当前 PowerShell 会话注入 Flutter_OH、ohpm、hvigor 与 DevEco 环境变量,不修改用户或系统 PATH。先在仓库根目录执行,再进入 `app` 使用已有的开发环境入口构建:
```powershell
. .\enable-ohos.ps1
cd app
flutter build hap --debug
```
构建产物为未签名 debug HAP:`app/ohos/entry/build/default/outputs/default/entry-default-unsigned.hap`。Hvigor 默认使用现有的 `lib/main.dart`,并加载 dev 环境配置。HAP 编译通过不代表 ArkTS 原生桥接、扫码或真机安装已经完成,边界见 [docs/07-native-integration.md](docs/07-native-integration.md)。
`analyze` 带 `--fatal-infos`。不加等于没加 lint——绝大多数 riverpod_lint 规则
报的是 info 级。
@@ -125,7 +133,7 @@ melos run test # flutter test --coverage
app/ 壳工程。唯一知道所有包的地方:环境注入、启动编排、路由聚合
packages/
core_foundation/ AppEnv / AppException 体系 / ApiCode ← 叶子包,谁都能依赖
core_logging/ AppLogger / CrashReporter / 脱敏
core_logging/ AppLogger / 脱敏
core_analytics/ Analytics 接口 + 事件常量表
core_storage/ Prefs(KV)。Drift 暂缓,见 SCAFFOLD-NOTES
core_auth/ AppSession 四态 / TokenStorage / SessionNotifier
@@ -186,5 +194,5 @@ flutter analyze → info: depend_on_referenced_packages
模板。现在调 `startScan` 会抛 `MissingPluginException`,属预期。
- **神策 SDK 未采购**:`analyticsProvider` 是 `NoopAnalytics`。接入时注意必须在
用户同意隐私政策之后再初始化。
- **env/*.json 里全是占位域名**,`SENTRY_DSN` 全空,待运维确认。
- **env/*.json 里全是占位域名**,待运维确认。
- **CI 镜像名未定**,`.gitlab-ci.yml` 里标了 TODO(ops)。