diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 67781e4..faf22c1 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -20,7 +20,52 @@ --- -## [已处理·待用户验收] 2026-10-17 | K12 首页去标题 + 空态视觉重做 +## [待处理] 2026-10-17 | K13 运行时服务器地址设置(仅 debug) + +**用户反馈(2026-10-17,已重复 3 次)**:每次 Codex 门禁构建出的 APK 不带 `--dart-define`,App 就回退到 `http://jiangdeMacBook-Air.local:8081`,真机不可用。 + +> 这是开发效率问题,不是业务功能。只做 debug 工具,不改 release 行为、不改接口。 + +### 一、现状(实测) + +- `lib/core/config/app_config.dart`:`apiBaseUrl = dart-define(API_BASE_URL) 非空 ? 它 : 默认值`;默认值在 iOS/Android 真机上是 `http://jiangdeMacBook-Air.local:8081`(常量)。 +- 构建参数由 `--dart-define` 决定,编译期固化;Xcode/门禁构建不带参数时必然回退。 +- 客户端已有 `SharedPreferencesAsync` 使用先例(`LocaleController`)。 + +### 二、本批范围 + +1. **新增运行时配置** `lib/core/config/server_endpoint.dart`(命名可调整): + - 读取 `SharedPreferencesAsync` 的 `dev.api_base_url`; + - 优先级:**运行时设置 > `--dart-define(API_BASE_URL)` > 现有默认值**; + - 启动时在 `main()` 里 `await` 加载完成后再创建 `ApiClient`(若现有结构不允许,可在 `AppConfig` 初始化时同步设置); + - URL 规范化:去首尾空格、去末尾 `/`;仅接受 `http://` 或 `https://` 开头,非法值忽略并保留原值。 +2. **设置入口(仅 `kDebugMode`)**: + - 位置:我的页 → 设置(现有 `showLanguage` 弹窗内增加「服务器地址」一行),或登录页底部一行小字入口;二选一,保持克制; + - 交互:弹窗显示当前实际 baseUrl,可编辑并保存;保存后提示「重启 App 生效」(文案走 l10n,三语); + - 提供「恢复默认」操作,清除 `dev.api_base_url`。 +3. **release 行为不变**:`kDebugMode == false` 时完全不显示入口,也不读取本地覆盖(仍用编译期配置)。 +4. **测试**: + - 优先级:本地设置 > dart-define > 默认; + - URL 规范化与非法输入拒绝; + - debug 下入口可见、release 下不可见(可用 `debugShowSetting` 之类的可注入开关测试); + - 不得删改既有测试致绿。 + +### 三、明确不做 + +- 不做多环境切换 UI(dev/staging/prod 列表)、不做远程配置下发。 +- 不改后端、不改接口、不改其他页面业务逻辑。 +- 不在 release 包暴露任何服务器地址修改能力。 + +### 四、门禁与 Git + +- `dart analyze lib test` 零告警;`flutter test` 全过;`flutter build apk --debug` 通过。 +- 从干净 `develop` 拉 `feature/flutter-k13-dev-server-setting`;完成后 `git merge --no-ff` 回 `develop` 并 push;不动 `main`。 +- 先写 `FruitServer/docs/plans/2026-10-17-K13.md`;每步「叙述 + 命令 + 原始输出 + 解读」追加到 `PROGRESS.md`;完成后停住写回执。 +- 提交作者与提交者统一 `Zhou Weidong <502333560@qq.com>`。 + +--- + +## [待处理] 2026-10-17 | K12 首页去标题 + 空态视觉重做 **用户指令(2026-10-17)**:「有了全部分类后 全部剧目不要显示了 而且现在空状态UI太丑了」。