Files
wx_pbzc/.workbuddy/launch-readiness-review.md
T
lc 187c426243 chore: 上线前优化 — 清理调试日志/启用组件按需注入/补全组件声明
- 移除全项目 34 处调试 console.* 输出
- project.config.json: minified true、uploadWithSourceMap false、启用 lazyCodeLoading(requiredComponents 组件按需注入)
- pages/records/records.json 补全 ui-skeleton 组件声明(此前漏声明,WXML 已使用)
- 删除根目录残留 preview-buttons.html
2026-08-04 14:05:16 +08:00

4.4 KiB
Raw Blame History

平板支撑训练小程序 · 上线前审查报告

日期:2026-08-04 | 审查范围:上线就绪(合规 / 包体 / 性能 / 云函数部署)

一、总体结论

代码质量高,主包仅 540KB(远低于 2MB 上限),网络请求全部走云开发 wx.cloud.*(免 request 合法域名白名单配置),隐私合规链路已在上架期验证可行。

有 1 个上线阻断项(云函数部署)+ 1 个部署前置(tts 环境变量)必须处理,其余为建议优化项。未发现功能性 bug、无合规硬伤。


二、🔴 阻断项(上线前必须完成)

1. 云函数必须重新部署(最关键)

注意:git 提交 ≠ 云函数部署。云函数代码要生效,必须在微信开发者工具里「上传并部署」。

云函数 近期状态 动作
leaderboard 本次 b52db87 改了 17 行(含 totalDays / 全榜勋章逻辑) 必须重新部署,否则线上排行榜跑旧逻辑
tts 8-03 改(循环训练语音播报) 需部署
getOpenid 基础服务,排行榜定位 + 云同步依赖 确认已部署
admin-dedupe 一次性清理工具(文档注明部署一次后删除) 可选

部署方式:微信开发者工具 → 右键云函数 → 「上传并部署:云端安装依赖」(项目无本地 node_modules,需云端 npm install)。tts 依赖 tencentcloud-sdk-nodejs 体积较大,云端安装需等待。

2. tts 云函数环境变量必须配好(部署前置)

cloudfunctions/tts/index.js 从环境变量读取密钥:

TTS_SECRET_ID / TTS_SECRET_KEY / TTS_REGION

若未配置,语音合成直接失败(循环训练 / 语音播报失效)。 确认路径:云开发控制台 → tts 云函数 → 环境变量;并确认腾讯云 TTS 服务已开通、密钥有效


三、🟡 建议项(不阻断,建议上线前做)

  1. 清理调试 console.logutils/cloud.js 14 处 + storage.js / voice.js / app.js / leaderboard 云函数等。上线应移除或降级(减小包体、避免泄露内部状态、减少日志噪声)。微信审核不强制。
  2. project.config.json 上线开关minified: falsetrueuploadWithSourceMap: truefalse。防源码泄露、减小包体(开发者工具上传界面也有独立勾选,会覆盖此项)。
  3. 隐私授权自定义弹窗:代码无 wx.onNeedPrivacyAuthorize 处理。当前能跑(微信自动弹系统默认隐私窗,且后台隐私协议已配、已上架运行一月),但建议加自定义弹窗以更合规、体验更佳。非阻断
  4. 全局错误上报:无 wx.onError / onUnhandledRejection / onPageNotFound。建议加全局异常捕获 + 轻量上报(云监控 / 自建),便于线上排查崩溃。
  5. 清理残留文件cloudfunctions/shared/(空死目录,重构遗留;leaderboard 实际引用 ./data,不受影响)、根目录 preview-buttons.html.claude/ / .codegraph/(工具目录)。小程序只打包组成文件,不影响包体,但建议加 packOptions.ignore 或删除以免误传。
  6. 确认生产 envutils/cloud.js 硬编码 ENV_ID=cloudbase-d1g56kl2q8f4f7d8a,确认是生产环境(通常单一 env 即可)。

四、 已核实合规 / 无风险项

  • 主包 540KB << 2MB,无需分包
  • 无硬编码 http://,全走 wx.cloud(免 request 合法域名配置)
  • 隐私接口仅 chooseAvatarbutton open-type,后台已声明「用户信息」)
  • app.json 无需 requiredPrivateInfoschooseAvatar 不在此列)
  • sitemap.json 标准 allow
  • tabBar custom + custom-tab-bar 目录齐全
  • 云函数依赖声明齐全(wx-server-sdk / tencentcloud-sdk-nodejs
  • 内容安全风险低(昵称 / 头像均为用户自身数据,无实时 UGC 发布链路)

五、上线 Checklist

  • 部署 leaderboard / tts / getOpenid 云函数(云端安装依赖)
  • 配好 tts 环境变量并验证 TTS 可用
  • 开发者工具「上传」时勾选 压缩 + 不上传 sourcemap
  • 体验版真机回归:训练 → 记录 → 排行榜(含空榜 / 1-2 名虚拟台)→ 设置改头像
  • 确认 MP 后台类目(运动健身类)与隐私协议有效
  • 提交审核,准备测试说明(功能无需登录,排行榜可空榜展示)