3.0 KiB
3.0 KiB
生成代码命令
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 未传任何文件签名配置时,自动走旧版兼容测试模式:
fvm flutter run
旧版模式会在控制台打印 [file-access] 旧版兼容测试模式,不发起文件校时和签名续期。
即使同时提供签名配置,显式 FILE_ACCESS_MODE=legacy 也会保持旧版请求行为。
该模式仅用于 Debug;Profile/Release 仍需有效签名配置。配置不完整或密钥错误会报错。
新版签名模式读取 .file-access/config.json。该文件已被 Git 忽略,所有环境共用现有的一套配置。
换电脑或在 CI 构建时需要同步这份配置;准备方式见
文件访问接入说明。
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。
这些参数在编译时生效,修改后需停止调试并重新运行。
旧版兼容验证
- 选择“旧版兼容,无配置”,完全停止后重新启动,确认控制台显示旧版模式。
- 使用未缓存的新图片,检查实际请求只有原始文件参数,没有
appId/kid/ts/sign。 主屏、副屏、人脸图片下载均使用同一编译模式;已有图片缓存不代表服务器仍允许读取。 - 在已部署文件校验的后端测试:
mode: enforce且legacy-dart.enabled: true时, 符合Dart/<版本> (dart:io)UA 的裸图片请求可走兼容;关闭兼容后应返回 403。 后端observe模式仍会放行,不能用于确认拒绝行为。 - 旧 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