feat(mobile): expand TTS voices and align App SDK

This commit is contained in:
2026-07-26 17:05:43 +08:00
parent 94ee29f59c
commit f57e0a53c6
18 changed files with 1171 additions and 419 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
> 生成时间:2026-07-08
> 来源口径:基于已入库正式资料生成,不使用本地 smoke 题作为验收依据。
> 状态说明:本文件是开发方候选题单,最终题单需业务方确认后锁定。
> 最近复核:2026-07-10 运行 `node scripts/verify-demo-questions.mjs --prefix=Q`,Q01-Q12 结果 `12/12`、来源告警 `0`、向量 `450/450`。
> 2026-07-10 复核:运行 `node scripts/verify-demo-questions.mjs --prefix=Q`,Q01-Q12 结果 `12/12`、来源告警 `0`、向量 `450/450`。
## 生成依据
+1
View File
@@ -8,6 +8,7 @@
2. Android 首次上机前,复制 `mobile-uni/androidPrivacy.json.example` 为 `mobile-uni/androidPrivacy.json`,替换两个法务确认的 HTTPS 链接;再执行 `npm --prefix mobile-uni run verify:app-release`。
3. 使用有效的移动端测试账号;不得把管理员 Web 登录态当作 App 登录验证。
4. 每台设备保留系统版本、App `versionName/versionCode`、基座/包哈希、录屏或截图和失败日志。
5. HBuilderX/CLI 编译链必须与手机调试基座兼容;启动时出现版本不匹配弹窗即视为未通过。当前版本组合和排障命令见 `MOBILE_APP_PACKAGING.md`。
## Android(最低 Android 10 + 一台当前主流机型)
+19 -1
View File
@@ -8,6 +8,8 @@
- App 直接请求 `https://peilian.njzhmj.top/dev-api`。不依赖 H5 开发服务器的 `/dev-api` proxy;地址是公开配置,不得在 App 包中放入短信、模型、签名或任何服务端密钥。
- `manifest.json` 只保留不含秘密的发布配置。`.keystore`、`.p12`、`.mobileprovision` 与证书密码只能由发布负责人在 HBuilderX 云打包界面或受控 CI 秘密变量中提供,绝不能提交 Git。
- Android 最低试点设备为 Android 10,iOS 最低试点设备为 iOS 15;每次发版提升 `versionCode`,再更新 `versionName`。
- 当前 App 编译链与本机 HBuilderX `5.15.2026070915` 标准基座对齐:`@dcloudio/uni-app`、`@dcloudio/uni-app-plus`、`@dcloudio/vite-plugin-uni` 固定为 `3.0.0-alpha-5010220260604001`。这是 HBuilderX/uni-app 编译器版本,不是 Android `minSdkVersion`。
- `@dcloudio/uni-h5` 有意保留 `3.0.0-alpha-5020120260710001`;5.15 内置的 H5 包没有导出项目仍在使用的 `Audio` 组件,会使 `build:h5` 失败。不要为了“版本整齐”把 H5 包一并降级。
## 本地验证与出包
@@ -23,6 +25,8 @@ npm --prefix mobile-uni run build:app
2. 在真实 Android 与 iPhone 上验证手机号登录、录音并转写、TTS 播放、图片/视频/文件上传、附件下载、拒绝权限、前后台切换、刘海和底部安全区。
3. Android 试点使用企业签名的正式 APK;上架渠道按渠道要求导出相应制品。iOS 使用企业 Apple Developer 账号的 Distribution 证书和 provisioning profile,先走 TestFlight。
标准基座可用于日常 JavaScript/WebView 兼容性调试,但不能替代自定义基座或签名包的权限、图标、启动图和原生配置验收。
## 发布前尚需提供的资产
- 经法务确认并已可公开访问的《服务协议》《隐私政策》;Android 必须用该实际链接配置原生 template 隐私弹窗,iOS 需提供相应的麦克风、相机、相册/文件用途说明。
@@ -35,10 +39,24 @@ npm --prefix mobile-uni run build:app
- 现有品牌源图仅为 64×64,因此这里生成的是**可用于自定义基座和测试包的派生资产**。正式提交商店前应替换为品牌方提供的高分辨率母版,再重新执行生成和预检。
- `androidPrivacy.json.example` 是**未启用的法务模板**,其中 `__TERMS_URL__` 与 `__PRIVACY_URL__` 必须替换为法务确认的 HTTPS 地址。复制为被 Git 忽略的 `androidPrivacy.json` 后,`npm --prefix mobile-uni run verify:app-release` 才会通过。
- iOS 已按实际功能填写麦克风和照片库用途说明;不申请相机、定位、通讯录、蓝牙或广告追踪权限。
- `build:app` 依赖 `@dcloudio/uni-app-plus`(须与其他 `@dcloudio` 包同版本)。缺少该编译器时命令**不报错**,只静默产出带 `/h5/` 基路径的 H5 空壳,产物里没有 `app-service.js` 与 `app-renderjs.js`,App 平台代码等于从未编译。判定 `build:app` 是否真的成功要看产物中是否存在 `app-service.js`、`app-renderjs.js`、`manifest.json`,不能只看 `DONE Build complete.`。
- `build:app` 依赖 `@dcloudio/uni-app-plus`,它必须与 `@dcloudio/uni-app`、`@dcloudio/vite-plugin-uni` 同版本;H5 包是上文说明的平台例外。缺少 App 编译器时命令**不报错**,只静默产出带 `/h5/` 基路径的 H5 空壳,产物里没有 `app-service.js` 与 `app-renderjs.js`,App 平台代码等于从未编译。判定 `build:app` 是否真的成功要看产物中是否存在 `app-service.js`、`app-renderjs.js`、`manifest.json`,不能只看 `DONE Build complete.`。
- App-Plus 实时对练通过 `renderjs` 在系统 WebView 中执行媒体/WebRTC;认证 SDP 与工具请求仍由逻辑层代理。发布前必须在 Android/iOS 真机验证麦克风授权、实时转写、远端语音播放、前后台切换和断线降级。
- 真机步骤和证据口径见 `docs/MOBILE_APP_DEVICE_ACCEPTANCE.md`。资源预检通过不等于 Android/iOS 真机或应用商店验收通过。
## 调试基座版本不匹配
若真机提示“本应用使用 HBuilderX X 或对应 CLI 版本编译,而手机端 SDK 版本是 Y”,先核对编译依赖与基座,不要修改 Android `minSdkVersion`:
```bash
/Applications/HBuilderX.app/Contents/MacOS/cli --version
node -e "for (const n of ['@dcloudio/uni-app','@dcloudio/uni-app-plus','@dcloudio/vite-plugin-uni']) console.log(n, require('./mobile-uni/node_modules/'+n+'/package.json').version)"
/Applications/HBuilderX.app/Contents/MacOS/cli launch app-android \
--project "$PWD/mobile-uni" --deviceId <adb-serial> \
--playground standard --compile true
```
当前 5.15 内置包在 `build:app` 输出中显示 `Compiler version: 5.12(vue3)`,属于 DCloud 自身的版本映射;依赖、HBuilderX 和手机标准基座按上述固定版本组合后,真机不再弹出 5.21/5.15 不匹配提示。
## 更新策略
涉及原生权限、插件、证书或 App 壳的改动必须重新云打包并通过应用商店/TestFlight 发布。仅 JavaScript/CSS/静态资源的热更新(WGT)不作为首个试点版本的发布方式;如后续启用,须有版本兼容、完整性校验、灰度与回滚方案。
@@ -40,7 +40,7 @@
---
## 2. 主线 B:外部输入催办清单(今天发出,B3 为最大阻塞)
## 2. 主线 B:外部输入催办清单(2026-07-16 发出,B3 为最大阻塞)
每项需在发出时填负责人与回复期限;到兜底触发日仍无答复即升级 HR 负责人(BRD 第 13 章"集成负责人指派"至今未闭合)。
@@ -19,7 +19,7 @@
| 层级 | 主要证据 | 能证明什么 |
|---|---|---|
| 历史可运行版 | `mobile/src/App.vue`、`mobile/src/data/*` | 旧源码实际存在过的交互,不代表今天仍在线 |
| 历史可运行版 | `mobile/src/App.vue`、`mobile/src/data/*` | 旧源码实际存在过的交互,不代表当前仍在线 |
| 历史需求/设计 | BRD、阶段总纲、会议纪要、Figma | 功能被提出、规划或设计过,不单独证明已交付 |
| 当前实现 | `mobile-uni/`、`frontend/`、`backend/ruoyi-modules/ruoyi-aihr/` | 当前代码和接口能力 |
| 本地验证 | 自动化测试、真实本地 API、浏览器操作和截图 | 当前构建在验证环境可运行 |