fix(mobile): 让华为 AGConnect 在 AGP 9 下能识别真实配置

放入 agconnect-services.json 后原插件坐标无法解析,且 1.9.1 不兼容 AGP 9。
映射到 agcp 1.9.5.301,Gradle 可按包名校验;该文件继续忽略不入库。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
编码工程师
2026-08-31 00:56:12 +08:00
co-authored by Cursor multica-agent
parent a71f6a0ce1
commit 1d393f4f1e
10 changed files with 88 additions and 29 deletions
+4 -4
View File
@@ -4,7 +4,7 @@
## 正在做
公网第一阶段返工:overlay 端口覆盖、`JPUSH_PUSH_INTENT` 引号与 `SERVER_IP` 校验已改完,等待总工复审后部署测试环境
无。华为配置注入与 Gradle 识别已提交,等待审核
## 已做完
@@ -16,13 +16,13 @@
- 建立本目录四份交接手册,并为三份过时旧说明加上明确的留档提示。
- 手机端应用标识统一为 `cn.solsum.jinxunda`
- 安卓极光 SDK 初始化、通知权限、alias 回传、点击处理,以及 OpenIM 离线推送所需的服务端配置入口(Master Secret 从服务器文件注入)。
- 公网反向代理 / HTTPS / WSS / 防火墙与回滚说明(配置进仓库,未实际部署)。
- 公网反向代理 / HTTPS / WSS / 防火墙与回滚说明(配置进仓库;香港测试环境已由总工部署)。
- 公网 overlay 用 `!override` 覆盖内部端口绑定;部署脚本校验 `SERVER_IP` 非空。
- 构建机本地放入华为 `agconnect-services.json`(不入库);AGConnect 插件映射/版本已按 AGP 9 补齐,Gradle 能识别包名 `cn.solsum.jinxunda`
## 还没安排
- 总工在测试机按 `deploy/public/README.md` 部署并验证证书与推送
- 向构建机放入华为 `agconnect-services.json` 后重打安卓包(见 `mobile/android/app/README-agconnect.md`)。
- 在可编译 LiveKit 的环境打出安卓包,并用真机验证华为厂商通道到达
- 组织真实手机和 Windows 电脑的回归:重点确认文件传输、一对一语音通话和杀进程后的离线通知。
- 明确手机正式签名的负责人和安全保管方式;不能把签名密钥提交进仓库。
- 获得负责人同意后,再导入真实员工名单并验证账号管理流程。
+9 -5
View File
@@ -4,13 +4,13 @@
## 现在做到哪里
项目已经具备可继续测试的手机端、Windows 电脑端、账号服务和内网部署配置,并完成本阶段公网接入的**客户端与部署配置**(未在测试机上实际部署)
项目已经具备可继续测试的手机端、Windows 电脑端、账号服务,香港测试环境已由总工部署;本轮补齐了安卓华为厂商通道的客户端构建配置
- 手机端在 `mobile/`,使用 OpenIM Flutter SDK `3.8.3+hotfix.12`,版本 `1.0.7+8`
- 安卓/苹果应用标识为 `cn.solsum.jinxunda`
- 手机端已接入极光官方 Flutter 插件(AppKey 在客户端配置),登录后把 OpenIM userID 设为极光 alias;华为厂商通道依赖已打开,缺华为后台下载的 `agconnect-services.json`
- 手机端已接入极光官方 Flutter 插件(AppKey 在客户端配置),登录后把 OpenIM userID 设为极光 alias。
- 华为 AGConnect 插件在放入本地 `agconnect-services.json` 后启用(agcp `1.9.5.301`,适配 AGP 9);该文件含密钥,仓库继续忽略,不入库。
- 手机默认服务地址为 `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`;由总工部署,施工员不改测试机。
- overlay 的内部端口用 Compose `!override` 覆盖基础 `0.0.0.0` 绑定,只留 `127.0.0.1`LiveKit `17881/tcp``17882/udp` 仍对公网开放。部署脚本会拒绝空 `SERVER_IP`
@@ -19,13 +19,17 @@
- `docs/phase4-regression-2026-08-16.md` 记录过手机与电脑之间的文字、同事申请、图片、语音消息等跨端回归结果。
- 该记录中的文件传输和一对一语音通话,曾因模拟器环境无法闭环,仍需要用真实设备再次确认。
- 旧记录使用的是更早的提交、安装包版本和端口状态;因此已保留为档案并在开头标明过时,不能当作当前验收结论。
- 放入与 `cn.solsum.jinxunda` 匹配的真实华为配置后,Gradle `:app:processDebugAGCPlugin``:app:processReleaseAGCPlugin` 通过;debug/release/profile 均识别该配置文件。未因配置缺失或包名不一致失败。
- `flutter pub get` 已写入 `jpush_flutter 3.5.6` / `jpush_flutter_android 1.0.2``mobile/pubspec.lock`
- `flutter analyze` 仅有 2 条既有 OpenIM `group` 弃用 info`flutter test``config_test` 通过。
- 整包 `flutter build apk` 未出包:锁定的 `livekit_client 2.5.0+hotfix.3` 与 Flutter 3.47 / Dart 3.13 的空安全检查不兼容。此项不在华为配置本卡范围,未改 LiveKit 版本。
## 当前停在哪
客户端与部署配置已提交。测试机上的 Nginx/证书/compose 公网拉起、以及华为 `agconnect-services.json` 放入构建机,等总工审核后处理。本阶段未在测试机执行部署
华为配置已在构建机本地注入并被 Gradle 识别。整包 APK 与真机华为通道到达,仍待后续在可编译 LiveKit 的环境或真机上完成。本轮未改测试机、未回退公网端口与部署安全修复
## 已知风险和待验证事实
- 真机上的文件传输、一对一语音通话、杀进程后的离线推送(尤其华为通道)仍需实际设备验证。
- 本施工环境无 Flutter / JDK / Android SDK,未能在本机执行 `flutter analyze``flutter build apk`
- 整包 APK 受 `livekit_client 2.5.0+hotfix.3` 与当前 Flutter 空安全检查限制,需另卡决定是否升级 LiveKit
- 电脑端使用较旧的 Electron;公网接入后仍需评估 HTTPS、登录限流和跨域策略。
+1 -1
View File
@@ -26,6 +26,6 @@
- 只做集团内部通讯,不改造成公开社交产品。
- 保留 OpenIM 的现有标识,禁止替换品牌。
- 公网第一阶段:安卓极光 + 华为厂商通道(华为配置文件仍缺,见 `mobile/android/app/README-agconnect.md`);不接小米/OPPO/vivo/荣耀/魅族/FCM/苹果推送。
- 公网第一阶段:安卓极光 + 华为厂商通道(`agconnect-services.json` 只放构建机、不入库,见 `mobile/android/app/README-agconnect.md`);不接小米/OPPO/vivo/荣耀/魅族/FCM/苹果推送。
- 不把员工名单、密码、管理员口令、极光 Master Secret、华为 Secret、私钥或服务器私密配置写入仓库和文档。
- 本仓库的日常任务如无明确授权,不做发布、部署或改动生产环境。