docs(mobile-next): 建立 docs/upstream 与 docs/acceptance,回退引用对齐本分支提交

- docs/upstream/baseline.md: 上游来源/固定版本/许可证原文位置/工具链锁定/差异
- docs/upstream/build-and-rollback.md: 构建命令、本机实测 SHA256、逐提交回退方法
- docs/acceptance/sdk-compat-gate.md: hotfix.12 兼容冒烟矩阵(初始化/登录/会话同步/断线重连/好友/群组/文字双向/图片/文件/语音)
- docs/acceptance/pc-boundary.md: PC 端只读核对的可改边界封存
- docs/acceptance/visual-spec-token-entry.md: 视觉规范 v2 唯一来源与 Token 入口预留
- 修正导入/验证文档中回退引用为 B-95 分支实际提交

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
编码工程师
2026-08-19 15:55:45 +08:00
co-authored by multica-agent
parent 2c9dab160e
commit e26abad4e1
7 changed files with 216 additions and 4 deletions
+61
View File
@@ -0,0 +1,61 @@
# mobile-next 构建与回退方法(docs/upstream
## 前置环境
```bat
set JAVA_HOME=<JDK17 目录>
set ANDROID_HOME=<Android SDK 目录>
set PATH=%JAVA_HOME%\bin;<Flutter SDK 目录>\bin;%PATH%
set GRADLE_OPTS=-Xmx4096M
```
`mobile-next/android/local.properties` 需包含(本机路径,不入库):
```
sdk.dir=<Android SDK 目录,反斜杠转义>
flutter.sdk=<Flutter SDK 目录,反斜杠转义>
```
首次依赖解析(生成 `.dart_tool`,不产生源码改动):
```
cd mobile-next
flutter pub get
```
## 构建命令
```bat
flutter build apk --debug :: 产物 build/app/outputs/flutter-apk/app-debug.apk
flutter build apk --release :: 产物 build/app/outputs/flutter-apk/app-release.apk
```
- release 使用上游自带 keystore `android/app/openim`alias/password 均为 `openim`),保留 OpenIM 标识与签名。
- 注意:上游 `android/app/build.gradle``ndk { abiFilters "arm64-v8a" }` 只打 arm64;如需 x86_64 模拟器联调,临时放开 `"x86_64"` 再还原(本地产物,不入库)。
## 本卡实测结果(2026-08-19,本机锁定环境)
| 构建 | 结果 | 产物 | 大小 | SHA256 |
|---|---|---|---|---|
| debug | 成功 | `app-debug.apk` | 109,454,925 B | `DD7D9700BC1F5830B7495875387948AAD536CA63FDC3EF66B4C0F4D152407B72` |
| release | 成功 | `app-release.apk` | 53,323,411 B | `4969AF4A4800A8E7C0B0C2F50687CB8C765925E4F2B3B7A53762D1D9E49CA604` |
APK 元数据(aapt badging):package `io.openim.flutter.demo`versionCode `180`versionName `3.8.3`minSdk 24 / targetSdk 33 / compileSdk 34。
release 签名(apksigner verify --print-certs):CN=openim,证书 SHA-256 `1f38a82fb3c33be7951fb5d964ef5bd9c6c9bfc084ae1e2a8a40a0d1f44ae1fe`,与官方基线同一 keystore。
构建期告警(不影响产物):Flutter Gradle 插件 apply-script 弃用提示;部分依赖 Kotlin metadata 版本(1.8.x)高于工程 Kotlin1.9.23 预期 1.6.0/1.8.0)的警告,均属上游依赖组合特性,debug/release 均通过。
## 失败停止点
任一核心门禁失败即停止后续迁移,在本卡汇报并附错误证据,不得继续迁移。本阶段 debug/release 均构建成功,无失败步骤。
## 逐提交回退
本卡分支基于回退基线 `fa8584a`,主题提交相互独立,可单独回退:
| 主题 | 提交 | 回退命令 |
|---|---|---|
| 官方基线导入 + 双构建 | 8046ec7483d68f67011913da12e5e671479b5ff0 | `git revert 8046ec7483d68f67011913da12e5e671479b5ff0``git rm -r mobile-next` |
| SDK hotfix.12 接入 + 核心能力实测 | 2c9dab160eefcaa5a4ad76a24ec2948bffaccc7e | `git revert 2c9dab160eefcaa5a4ad76a24ec2948bffaccc7e`(仅 4 个依赖文件) |
回退任一提交均不影响 `mobile/``pc-client/``account-service/`、现网服务器与已发布安装包。SDK hotfix 提交的手动回退:把 `mobile-next/pubspec.yaml``openim_common/pubspec.yaml``openim_live/pubspec.yaml``flutter_openim_sdk` 改回 `3.8.3+3``flutter pub get`