66 lines
3.0 KiB
Markdown
66 lines
3.0 KiB
Markdown
## 生成代码命令
|
||
|
||
```
|
||
flutter pub run build_runner build --delete-conflicting-outputs~
|
||
```
|
||
|
||
## 本地运行
|
||
|
||
项目使用 FVM Flutter 3.27.4。在 IDE 中选择启动模式即可,无需每次填写参数:
|
||
|
||
| 模式 | VS Code 启动项 | Android Studio 启动项 | 文件请求 |
|
||
| --- | --- | --- | --- |
|
||
| 新版签名 | `pj_supermarket_cloud(新版签名)` | `main.dart`,Additional run args 配置下述签名参数 | 读取本地配置,图片和上传携带签名 |
|
||
| 旧版兼容测试 | `pj_supermarket_cloud(旧版兼容,无配置)` | `main.dart(旧版兼容,无配置)` | 不读取配置文件,图片和上传不携带应用签名 |
|
||
|
||
直接运行以下命令也可启动。Debug 未传任何文件签名配置时,自动走旧版兼容测试模式:
|
||
|
||
```bash
|
||
fvm flutter run
|
||
```
|
||
|
||
旧版模式会在控制台打印 `[file-access] 旧版兼容测试模式`,不发起文件校时和签名续期。
|
||
即使同时提供签名配置,显式 `FILE_ACCESS_MODE=legacy` 也会保持旧版请求行为。
|
||
该模式仅用于 Debug;Profile/Release 仍需有效签名配置。配置不完整或密钥错误会报错。
|
||
|
||
新版签名模式读取 `.file-access/config.json`。该文件已被 Git 忽略,所有环境共用现有的一套配置。
|
||
换电脑或在 CI 构建时需要同步这份配置;准备方式见
|
||
[文件访问接入说明](../pj_service_cloud/docs/file-access/README.md)。
|
||
|
||
```bash
|
||
fvm flutter run --dart-define-from-file=.file-access/config.json
|
||
```
|
||
|
||
VS Code 的新版 Debug、Profile、Release 启动配置已包含签名参数。
|
||
Android Studio 在 `main.dart` 的 Run/Debug Configurations 中,将 Additional run args 设置为
|
||
`--dart-define-from-file=.file-access/config.json`。
|
||
这些参数在编译时生效,修改后需停止调试并重新运行。
|
||
|
||
## 旧版兼容验证
|
||
|
||
1. 选择“旧版兼容,无配置”,完全停止后重新启动,确认控制台显示旧版模式。
|
||
2. 使用未缓存的新图片,检查实际请求只有原始文件参数,没有 `appId/kid/ts/sign`。
|
||
主屏、副屏、人脸图片下载均使用同一编译模式;已有图片缓存不代表服务器仍允许读取。
|
||
3. 在已部署文件校验的后端测试:`mode: enforce` 且 `legacy-dart.enabled: true` 时,
|
||
符合 `Dart/<版本> (dart:io)` UA 的裸图片请求可走兼容;关闭兼容后应返回 403。
|
||
后端 `observe` 模式仍会放行,不能用于确认拒绝行为。
|
||
4. 旧 Dart 兼容只放行图片;PDF、裸 APK、上传不会因 Dart UA 放行。
|
||
服务端签发的 `package` 下载链接继续可用。切回“新版签名”后,验证图片和上传请求带签名。
|
||
|
||
此模式模拟旧版请求,旧 APK 在实际设备上的兼容性仍需用原安装包验证。
|
||
|
||
## flutter打包
|
||
|
||
```
|
||
fvm flutter build apk --dart-define-from-file=.file-access/config.json --build-name 2.2.0 --build-number 220
|
||
--build-name为版本号(展示)
|
||
--build-number为版本号(内部比较)
|
||
```
|
||
|
||
## 打印日志
|
||
|
||
```
|
||
adb -s 8d06b935c69accd4 logcat -v time -s flutter
|
||
```
|
||
|