# uni-app 原生发行配置 H5 构建不依赖厂商证书。`pnpm check:native` 检查 AppID 基础格式、模块、隐私声明及 HTTPS/WSS 地址;不会验证开发者账号、AppID 归属或签名证书,这些仍由 HBuilderX/DCloud 打包流程校验。 1. 在 DCloud 开发者中心创建应用,将实际分配的 AppID 写入 `src/manifest.json` 的 `appid`,不要自行拼造。预检兼容 7 位和 8 位十六进制后缀,保留当前项目已有的 AppID。 2. 在 HBuilderX 的可视化 manifest 中配置应用包名、Android 签名证书和 iOS Bundle ID/证书。证书及密码不要提交到 Git。 3. 按实际厂商填写微信/QQ登录、微信/支付宝支付和 UniPush 参数。客户端只展示后端 `/api/v1/auth/oauth/providers` 与 `/api/v1/payment/channels` 返回且已启用的渠道。 4. 在 `mobile/.env.production` 配置 `VITE_API_ORIGIN` 和 `VITE_WS_ORIGIN`,预检和生产构建都会读取。终端/CI 显式注入的同名变量优先。域名必须具有有效 TLS 证书,反向代理须放行 `/ws` 升级连接。当前配置为 `https://im.bchongw.com` 和 `wss://im.bchongw.com`。 5. Android 仅保留网络、定位、相机、录音和振动权限;iOS 的对应隐私用途说明已写入 manifest。首次使用能力时由页面按需申请,不在启动时集中索权。 6. 运行下面的检查命令,再执行 `pnpm build:app-plus` 或使用 HBuilderX 云打包。 第三方 AppID、密钥、商户证书、短信签名和主体备案信息必须由真实主体申请,仓库不会提供可冒用的演示密钥。 ## 在 HBuilderX 中导入及重新编译 本仓库的移动端是 Vue 3 CLI 工程。建议通过「文件 → 导入 → 从本地目录导入」选择 **`D:\web\age\im\mobile` 整个目录**,不要只选择 `mobile/src`。 - 整个工程导入会使用项目依赖,并保留根目录的 `vite.config.ts` 和 `.env` 配置。 - 只导入 `src` 也是 HBuilderX 支持的另一种方式,但会改用 HBuilderX 内置编译器,工程根目录和环境配置位置也会变化,不适合直接沿用本项目的 CLI 配置。 - 如果日志标签显示 `src - Xiaomi ...`,请检查当前选中的是否是单独导入的 `src` 工程。无需删除源码,重新导入并选择完整的 `mobile` 工程即可。 停止旧的运行任务,保存文件,再从「运行 → 运行到手机或模拟器」重新运行。生成安装包则使用「发行 → 原生 App 云打包」,根据实际发布平台填写包名和签名材料;签名/云打包成功才代表生成 APK/IPA。 ## 真机调试与生产环境 ### HBuilderX 提示找不到本地 Node.js 本机 Node.js 路径是 `C:\nvm4w\nodejs\node.exe`,版本 `v22.22.0`。2026-08-31 已确认 HBuilderX 的 Node 检测先调用 `where node`;原 PATH 遗漏 `C:\Windows\System32`,导致 `where.exe` 找不到,从而误报 Node 未安装。 已仅向当前用户 PATH 补入 `C:\Windows\System32`,原有条目保留,系统级 PATH 未改动。通过 HBuilderX 自带 Node 重现其检测步骤,已能找到本机 Node.js。修改前的 PATH 备份在仓库 `.tools/hbuilderx-path-backup-20260831.json`(不提交到版本库)。 保存文件并完全退出 HBuilderX,再重新打开完整 `mobile` 工程,使新进程读取更新后的环境变量。可在新终端验证: ```powershell where.exe node node --version npm --version ``` 不要为解决这一提示删除项目依赖、修改 HBuilderX 插件或重复安装 Node。 ### 接口域名 `mobile/.env.production` 用于发行构建;HBuilderX「运行到手机/模拟器」使用 development 模式,不读取 `.env.production`。已在 `mobile/.env.development` 配置部署服务,调试和发行均可访问 `https://im.bchongw.com`,消息地址为 `wss://im.bchongw.com`。测试操作会使用该部署环境的真实数据。 如需独立测试服务器,可在 `mobile/.env.development.local` 覆盖地址。H5 本地开发也会读取 development 配置,请明确选择所需后端: ```dotenv VITE_API_ORIGIN=https://im.bchongw.com VITE_WS_ORIGIN=wss://im.bchongw.com ``` 连接开发电脑上的后端时需要手机可访问的 HTTPS 地址(也可使用可信的 HTTPS 开发隧道)。手机上的 `127.0.0.1` 指向手机自身,不是开发电脑。不要把后端密钥、数据库密码或商户私钥放进任何 `VITE_` 变量,它们会被编入客户端。 `dev:app-plus` 现在按 `--mode development` 预检,`build:app-plus` 按 `--mode production` 预检,并输出实际 API/WS 地址。预检拒绝回环地址。运行时会区别提示接口配置错误、DNS 失败、证书失败和超时,不会关闭 TLS 证书校验。 `VITE_H5_BASE=/app/` 仅用于 H5 网站,App 构建不会再沿用该网站子路径。环境文件读取位置固定为工程目录,不依赖 HBuilderX 启动时的工作目录。 ## 检查与 App 资源编译 在 `mobile` 目录执行: ```powershell pnpm test:native-components pnpm test:icons pnpm test:native-config pnpm type-check pnpm check:native pnpm build:app-plus pnpm build:h5 ``` 当前 CLI 编译器将 App 资源输出到 `dist/build/app`,H5 输出到 `dist/build/h5`。App 资源不是已签名 APK/IPA;本次仅验证了资源编译,没有提交云打包、签名或安装到用户手机。 ## 已修复的 switch 编译错误 原隐私设置和消息通知页面使用了 ``,App Vue 编译时报 `v-model can only be used on ,