feat(mobile,deploy): 接入安卓极光与华为通道并准备公网部署配置

客户端默认指向 jxd.jinniu.ink 的 HTTPS/WSS;登录后把 OpenIM userID 设为极光 alias。
华为 agconnect-services.json 不伪造、不入库。Master Secret 只从服务器文件注入。

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
编码工程师
2026-08-30 21:32:58 +08:00
co-authored by multica-agent
parent f35e1f03d5
commit f1fe4a3928
35 changed files with 687 additions and 64 deletions
+1
View File
@@ -12,6 +12,7 @@
- `pc-client/`:电脑端,使用 Electron,Windows 是当前优先支持的平台。
- `account-service/`:公司账号服务,负责工号密码登录、管理员导入和管理名单。
- `docker-compose.yaml``config/``scripts/`:OpenIM、语音服务和内网环境的配置及维护脚本。
- `deploy/public/`:香港测试机 `jxd.jinniu.ink` 的公网反代、证书和回滚说明(由总工部署)。
- `docs/`:本手册和以前留下的验收、回归、使用说明。
## 更新规矩
+9 -7
View File
@@ -1,12 +1,10 @@
# 任务清单
更新时间:2026-08-23。任务状态以当前仓库和项目约束为准;没有证据的事项不写成“已完成”。
更新时间:2026-08-30。任务状态以当前仓库和项目约束为准;没有证据的事项不写成“已完成”。
## 正在做
目前没有已确认正在施工的业务代码任务
本次已完成仓库交接手册整理,后续所有任务都应按 `docs/README.md` 的更新规矩同步维护本清单。
公网第一阶段:客户端极光/华为接入与 `jxd.jinniu.ink` 部署配置已提交专用分支,等待总工审核并部署测试环境
## 已做完
@@ -16,11 +14,15 @@
- 完成一轮手机与电脑的跨端回归记录;其中已通过的项目见旧档 `phase4-regression-2026-08-16.md`
- 将 LiveKit 的信令/媒体端口统一为 `17880``17881``17882`,并提供可重复执行的修复脚本。
- 建立本目录四份交接手册,并为三份过时旧说明加上明确的留档提示。
- 手机端应用标识统一为 `cn.solsum.jinxunda`
- 安卓极光 SDK 初始化、通知权限、alias 回传、点击处理,以及 OpenIM 离线推送所需的服务端配置入口(Master Secret 从服务器文件注入)。
- 公网反向代理 / HTTPS / WSS / 防火墙与回滚说明(配置进仓库,未实际部署)。
## 还没安排
- 组织真实手机和 Windows 电脑的回归:重点确认文件传输和一对一语音通话
- 总工在测试机按 `deploy/public/README.md` 部署并验证证书与推送
- 向构建机放入华为 `agconnect-services.json` 后重打安卓包(见 `mobile/android/app/README-agconnect.md`)。
- 组织真实手机和 Windows 电脑的回归:重点确认文件传输、一对一语音通话和杀进程后的离线通知。
- 明确手机正式签名的负责人和安全保管方式;不能把签名密钥提交进仓库。
- 获得负责人同意后,再导入真实员工名单并验证账号管理流程。
- 等负责人对三个公网问题拍板后,才安排公网 IP/域名、备案、反向代理和 HTTPS 的具体施工;当前禁止擅自开始
- 公网方案获批后,重新评估电脑端 Electron、登录失败限制、令牌本地保存和跨域设置的安全风险。
- 不接入小米、OPPO、vivo、荣耀、魅族、FCM 或苹果推送(本阶段明确不做)
+12 -13
View File
@@ -1,16 +1,17 @@
# 最新进度
更新时间:2026-08-23。以下内容依据当前仓库代码和最新提交 `fa8584a` 整理。
更新时间:2026-08-30。以下内容依据当前仓库代码整理。
## 现在做到哪里
项目已经具备可继续测试的手机端、Windows 电脑端、账号服务和内网部署配置:
项目已经具备可继续测试的手机端、Windows 电脑端、账号服务和内网部署配置,并完成本阶段公网接入的**客户端与部署配置**(未在测试机上实际部署)
- 手机端在 `mobile/`,使用 OpenIM Flutter SDK `3.8.3+hotfix.12`,版本 `1.0.6+7`
- 电脑端在 `pc-client/`,使用 Electron,显示版本 `v1.0.2`
- 员工用工号和密码通过 `account-service/` 登录;管理员导入和管理账号的页面、接口已在仓库中
- 手机和电脑端已接入聊天、通讯录、同事申请、语音消息、文件/图片消息和一对一语音通话相关代码
- 语音服务 LiveKit 的信令和媒体端口已统一为 `17880``17881``17882`;仓库提供 `scripts/fix-livekit-ports.sh` 用于服务器已部署环境的端口修复
- 手机端在 `mobile/`,使用 OpenIM Flutter SDK `3.8.3+hotfix.12`,版本 `1.0.7+8`
- 安卓/苹果应用标识为 `cn.solsum.jinxunda`
- 手机端已接入极光官方 Flutter 插件(AppKey 在客户端配置),登录后把 OpenIM userID 设为极光 alias;华为厂商通道依赖已打开,缺华为后台下载的 `agconnect-services.json`
- 手机默认服务地址为 `jxd.jinniu.ink` 的 HTTPS/WSS;内网可用 `--dart-define=SERVER_HOST=... --dart-define=USE_TLS=false` 覆盖
- 电脑端 `.env.example` 已改为同一套公网路径
- 公网部署 overlay、Nginx、证书步骤、Master Secret 注入脚本和回滚脚本在 `deploy/public/``scripts/deploy-public.sh`;由总工部署,施工员不改测试机。
## 已有验证记录
@@ -20,12 +21,10 @@
## 当前停在哪
公网接入施工暂停,等待负责人对三个公网相关问题拍板后再恢复。现阶段没有把内网服务发布到公网的授权
这意味着:代码可继续维护和内网验证,但公网 IP/域名、备案、反向代理和 HTTPS 等工作不能擅自启动。
客户端与部署配置已提交。测试机上的 Nginx/证书/compose 公网拉起、以及华为 `agconnect-services.json` 放入构建机,等总工审核后处理。本阶段未在测试机执行部署
## 已知风险和待验证事实
- 真机上的文件传输一对一语音通话仍需实际设备验证,不能只根据模拟器结果宣称完成
- 手机正式签名、真实员工名单导入和试用前的管理员安全设置,都需要负责人明确确认并由有权限的人执行
- 电脑端使用较旧的 Electron,且历史记录提到内网场景的安全取舍;若未来获准公网接入,必须先重新评估 HTTPS、浏览器安全设置、登录限流和跨域策略。
- 真机上的文件传输一对一语音通话、杀进程后的离线推送(尤其华为通道)仍需实际设备验证。
- 本施工环境无 Flutter / JDK / Android SDK,未能在本机执行 `flutter analyze``flutter build apk`
- 电脑端使用较旧的 Electron;公网接入后仍需评估 HTTPS、登录限流和跨域策略。
+4 -4
View File
@@ -18,14 +18,14 @@
## 支持范围
- 手机端:Android 和 iPhone 工程都在仓库中;当前手机端版本号为 `1.0.6+7`
- 手机端:Android 和 iPhone 工程都在仓库中;当前手机端版本号为 `1.0.7+8`。应用标识 `cn.solsum.jinxunda`
- 电脑端:Windows 优先;当前电脑端显示版本为 `v1.0.2`
- 服务端:以 Docker Compose(把一组服务一起启动的工具)编排 OpenIM、账号服务和语音服务。
- 服务端:以 Docker Compose(把一组服务一起启动的工具)编排 OpenIM、账号服务和语音服务。公网测试域名为 `jxd.jinniu.ink`HTTPS/WSS),部署配置在 `deploy/public/`,实际部署由总工执行。
## 当前边界
- 只做集团内部通讯,不改造成公开社交产品。
- 保留 OpenIM 的现有标识,禁止替换品牌。
- 本项目当前只记录和维护内网环境;公网接入尚未获准施工
- 不把员工名单、密码、管理员口令、钥或服务器私密配置写入仓库和文档。
- 公网第一阶段:安卓极光 + 华为厂商通道(华为配置文件仍缺,见 `mobile/android/app/README-agconnect.md`);不接小米/OPPO/vivo/荣耀/魅族/FCM/苹果推送
- 不把员工名单、密码、管理员口令、极光 Master Secret、华为 Secret、私钥或服务器私密配置写入仓库和文档。
- 本仓库的日常任务如无明确授权,不做发布、部署或改动生产环境。