61 lines
12 KiB
Markdown
61 lines
12 KiB
Markdown
# 帮道 8 月 1 日 Android 内测 Go/No-Go
|
||
|
||
> 评估时间:2026-07-29 12:20(CST)
|
||
>
|
||
> 评估对象:2026-08-01 受控内部测试 APK,不代表正式发布、应用商店上架或阶段一严格试点验收。
|
||
>
|
||
> 冻结范围与完整门禁见[《帮道 8 月 1 日 Android 安装包测试版任务计划》](帮道8月1日Android安装包测试版任务计划-20260727.md)。
|
||
|
||
## 结论
|
||
|
||
**当前为 No-Go,暂不能把现有 APK 标记为 8 月 1 日可分发版本。**
|
||
|
||
`0.1.13` DCloud 云端证书 APK 已生成并通过深检,认证身份失败关闭和可重复固定码重新登录门禁已进入包体;干净提交 `af8af2f6` 的统一 RC 已达到 `releaseEligible=true`,新候选后端的生产只读发布计划也已通过。固定码、登录和重新登录不再是缺口;当前阻断点只剩生产后端发布授权与发布后匹配、正式业务内容/五通道处理人签认、企业发布签认,以及本轮明确暂缓的真机设备验收。
|
||
|
||
## 已通过
|
||
|
||
| 检查项 | 当前结果 |
|
||
|---|---|
|
||
| 当前运行时冻结 | 干净提交 `af8af2f6dd169e4616a4ca0ca724e8b809502ab3` 的 `0.1.13 (113)` 统一 RC 已完成,`releaseEligible=true`;证据目录为 `output/aug1-rc/0.1.13-113-af8af2f6-frozen/`,候选后端 JAR SHA-256 为 `93AD272118F6A28F88C2BFA305F5C450E163CBE22577FF5BE3E85B3BD3958DAD` |
|
||
| 移动端自动化 | 199 项单元测试通过;TypeScript 类型检查通过;登录页协议默认未勾选,法务链接、验证码和登录共用失败关闭门禁;五个文件选择器和九个消费页面已覆盖用户取消/平台失败分流,直通车首次弱网加载失败可原位重试并失败关闭 |
|
||
| 构建 | `mobile-uni` H5、App-Plus、管理端生产构建通过;后端 `ruoyi-admin.jar` 重建通过;统一 RC 的前端、移动 H5 和后端 JAR 哈希均已写入冻结证据 |
|
||
| P0 后端语义 | `AihrSopSeedServiceTest` 39 项、`AihrPracticeSeedServiceTest` 102 项通过;`ruoyi-aihr` 700 项全量测试通过,0 失败、0 错误;新增 2 项覆盖有效主管身份与空身份失败关闭 |
|
||
| 内容候选门禁 | 已生成 5 个禁用场景候选和 30 道待审政策题,机器校验通过;正式可发布场景 `0`、正式有据标准答案 `0`,不得导入或启用 |
|
||
| App 资源门禁 | 正式法务 URL、登录页同意门禁、原生 `prompt=none`、API 35、图标和启动图检查通过 |
|
||
| 独立 APK | `com.yincheng.wygj`,`0.1.13 (113)`,`targetSdkVersion=35`,v2 测试签名,明文 HTTP 关闭且网络安全资源已进入 APK;大小 `33,921,543` 字节,SHA-256 `FA2D2A6DC84AE759714E6D16D146C1E1552A0F3F53C046069422012361D1D0C0` |
|
||
| 双提交交付包 | `output/aug1-release/bangdao-aug1-0.1.13-113-af8af2f6-opsfee80877.zip`;运行时 `af8af2f6`、operations `fee80877`,大小 `192,938,105` 字节,SHA-256 `4C7951B185E6CC6689ABAABA1E8783EBF58F82893D242B91DA072BB149A0972C`,17 个条目和内部哈希复核通过,包含固定码认证复验、内容候选校验及业务内容与五通道签认材料;旧 `opscc1865a9` ZIP 只作历史追溯 |
|
||
| APK 内容门禁 | 包内业务资源等于当前 App-Plus 编译产物;原生提示关闭、登录法务链接、未勾选拦截、身份失败关闭、手机号、固定测试验证码、私钥和常见令牌扫描通过 |
|
||
| 真机安装启动 | vivo V2443A(Android 15)完成 `0.1.6` 覆盖安装和冷启动;相机、录音、媒体权限保持未授权,未见 `FATAL EXCEPTION` |
|
||
| 虚拟机安装与生命周期 | 本机 `Medium_Phone` Android 15/API 35 已全新安装 `0.1.12`;启动原生隐私层不可见、四项敏感权限为 `false`、未见 Crash/ANR。AVD 为 `x86_64`、APK 仅含 ARM ABI,Weex 跨架构转译实际报 `spinWaitPeer`/IPC timeout;原生外壳证据有效,页面主体既不判失败也不判通过,不向发布包增加 x86 ABI或 H5 兜底 |
|
||
| Android 统一取证 | 只读脚本确认 `0.1.12 (112)` 进程和前台 Activity 正常、原生隐私层 `not-visible`、四项敏感权限为 `false`、退出记录无 Crash/ANR,证据在 `output/aug1-rc/android-acceptance/20260729-021418-no-native-privacy-fresh-install-retry/` |
|
||
| 登录页法务策略 | 启动不再弹原生确认,包体门禁通过;390×844 Playwright 真浏览器实测协议默认未勾选、两个 HTTPS 正文、验证码/登录请求前失败关闭和勾选后手机号校验,控制台 0 错误。该结果只作 Web 交互补充,不替代 App 认证业务验收 |
|
||
| 生产固定码认证 | 运行时确认固定码和生产显式开关同时启用;生产应用日志确认首次和重新登录前的两次验证码请求均命中“未真实发送短信”分支。只选择已存在 `app_user` 的双向唯一在职主体,不触发自动注册,不输出手机号、固定码或令牌 |
|
||
| 认证后非真机主路径 | `scripts/verify-aug1-authenticated-production.sh --execute` 通过身份/非空项目范围、认证首页、训练历史/画像、五通道、我的反馈、大喇叭、考试、案例/全网能力只读入口、退出、旧令牌业务码 401、防刷窗口后的再次获取、重新登录、重新读取身份和再次退出;五通道返回数为 5。未提交业务写入、附件、ASR/TTS 或 Agent 请求 |
|
||
| 法务静态页 | `https://peilian.njzhmj.top/legal/terms.html` 与 `https://peilian.njzhmj.top/legal/privacy.html` 已部署并可访问;发布前站点备份为 `/opt/wygj/backups/www-20260728224710` |
|
||
| 生产 API 只读契约 | 可重复 GET-only 探针覆盖 20 个 APK 入口;固定码认证脚本另完成认证后只读主路径。`0.1.13` 新后端候选包含 `AihrMobileController` 身份失败关闭修复,现网后端仍为上一语义,因此只读兼容通过不代表新候选已部署匹配 |
|
||
| 定向发布预检 | `566f222e` 已支持只核对后端 + schema;`feece9bb` 进一步允许以冻结提交和解压后的候选 JAR 为准。两次实际只读运行均跳过管理端/H5,根站、租户、移动首页和生产禁 DDL 门禁通过;后端 + schema 模式另通过 64/64 schema。冻结物模式确认本地 JAR SHA-256 为 `8c676f2f…`,最终均仅因现网/候选模块哈希 `15f5513a…` / `c93460e8…` 不同而按预期失败 |
|
||
| 后端发布/回滚计划 | `release-backend.sh` 固定生产 JAR 与 systemd 服务,默认只读,部署/回滚分别要求完整哈希授权串和干净工作区;备份、原子切换、发布后预检、失败恢复及并发改包保护均有回归。`af8af2f6` 候选 JAR 实跑只读计划通过:候选 `93ad2721…`、现网 `46c99cff…`,服务 active、空间充足、三个公开入口、64/64 schema 和生产禁 DDL 通过,全程未备份、上传、重启或改库 |
|
||
|
||
## No-Go 阻断项
|
||
|
||
1. **生产接口兼容,但当前后端修复未部署。** 生产固定码登录和现有认证只读接口可用,根站、租户接口、移动首页和 64/64 schema 门禁通过;当前源码除“不得冒充已创建/派发工单”和场景发布门禁外,又让移动身份缺失、组织查询异常、无在职身份和后台账号访问员工首页失败关闭。新后端 JAR 已冻结且只读发布计划通过,但尚无部署授权或发布后模块匹配结果,生产仍保留旧语义;获得单独授权前不得部署。管理端和移动 H5 不属于独立 APK 本轮必发单元,schema 本批不变。
|
||
2. **剩余认证问题已收敛为真机设备能力。** 固定码首次请求、登录、退出、旧令牌失效、等待防刷窗口后的再次请求和重新登录均已通过,两次请求都由日志确认没有真实短信发送。尚未完成的麦克风允许/拒绝、真实系统选择器取消、App 前后台和真实断网恢复均属于 Android 真机门禁,不能用 H5 结果代替。
|
||
3. **核心业务的非写入认证入口已通过,正式业务闭环仍受内容和处理人阻断。** 认证账号下身份、项目范围、首页、训练历史/画像、五通道列表、我的反馈、大喇叭、考试、案例和全网能力只读入口均已通过;正式“练”仍没有可发布的 5 个场景,五通道仍没有真实收件人,附件和 ASR/TTS 仍属真机/媒体验收。不得通过创建测试内容或绑定任意用户制造假闭环。
|
||
4. **内容与业务验收不足。** 当前仅收到 1/24 份生活顾问访谈。技术侧已把调研整理为 30 道政策题候选和 5 个场景候选,并提供统一签认单,但全部保持待审/禁用,正式可发布场景仍为 0/5,正式有据标准答案仍为 0/30。生产只读审计确认 `direct_president/direct_finance/direct_hr/direct_audit/direct_operations` 五个角色的有效用户绑定数均为 0,必须由业务负责人指定主处理人和替补后再验收。
|
||
5. **发布与回滚尚未签认。** 固定目标、默认只读、显式授权、备份、原子切换、失败恢复和并发保护的后端工具已经落地,冻结候选的只读发布计划也已通过;但尚无负责人发布授权、实际发布后匹配结果或回滚演练记录。当前 APK 已关闭明文流量但仍使用 DCloud 测试证书,只能用于受控内测;企业签名和公司法务正式签认仍是正式发布门槛。
|
||
|
||
## 转为 Go 的最短路径
|
||
|
||
| 顺序 | 必须完成 | 验收证据 |
|
||
|---|---|---|
|
||
| 已完成 | 确定 APK、后端、管理端/H5、数据库四个发布单元并生成 `0.1.13` DCloud 云端证书 APK | `0.1.13 (113)` APK SHA-256 `FA2D2A6D…`,API 35、v2 测试签名和深检通过;`0.1.12` ZIP 只作上一冻结基线 |
|
||
| 已完成 | 在干净提交上冻结 `0.1.13` APK 与后端 JAR,并执行生产只读发布计划 | `releaseEligible=true`,冻结目录 `output/aug1-rc/0.1.13-113-af8af2f6-frozen/`;候选 JAR `93AD2721…`、现网 JAR `46C99CFF…`,64/64 schema;未部署、未重启、未改库 |
|
||
| 1 | 获得明确授权后才使用 `release-backend.sh deploy` 发布内容语义和移动身份失败关闭修复;管理端/H5 延期,schema 本批不变 | 远端备份目录、生产 `ruoyi-aihr` 模块匹配、64/64 schema、发布后固定码认证与回滚点;不得手工覆盖或绕过失败恢复 |
|
||
| 已完成 | 使用生产现有在职 APP 主体和固定码完成非真机认证、退出、重新获取、重新登录及认证后只读主路径;固定码请求不真实发送短信 | `scripts/verify-aug1-authenticated-production.sh --execute` 全部通过,五通道数为 5,旧令牌按业务码 401 拒绝,两次验证码请求均有“未真实发送”日志;执行过程不输出手机号、固定码或令牌 |
|
||
| 2 | 业务方按统一签认单审核 30 道题和 5 个场景候选,补齐正式来源;同时指定五渠道主处理人和替补 | [业务内容与五通道签认单](帮道8月1日业务内容与五通道签认单-20260729.md)、正式内容版本、授权矩阵;正式可发布场景从 0/5 提升到 5/5、有据标准答案从 0/30 提升到 30/30,五个角色有效绑定均不少于 2 |
|
||
| 3 | 绑定获批处理人后完成五通道正例、跨通道反例和一次正式回复;用正式内容完成“查/练/问”业务写入闭环 | 每条用例的时间、角色、结果和脱敏证据;不记录手机号、验证码或反馈正文 |
|
||
| 4 | Android 真机完成麦克风、系统选择器、前后台、弱网、附件和 ASR/TTS 门禁 | 当前 APK 哈希对应的设备证据;不得用 H5 或模拟器空白 WebView 代替 |
|
||
| 5 | 7 月 31 日复跑安装、升级、回滚和完整 Go/No-Go | RC APK 哈希、签认人、回滚点、最终结论 |
|
||
|
||
公司法务签认与企业签名可在负责人明确接受“仅限小范围受控内部测试”的前提下不阻断技术验收,但不能省略登录页协议门禁、权限反例、版本冻结、生产依赖匹配和核心业务闭环。
|