From 94cc3bd097d59a2e6af43f3a4fbb7431dd9fefc2 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Fri, 8 May 2026 18:31:59 +0800 Subject: [PATCH] =?UTF-8?q?docs(deploy):=20=E6=B7=BB=E5=8A=A0=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E6=96=87=E6=A1=A3=E5=92=8C=E5=AE=89=E5=85=A8=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 XuqmGroup 部署文档,包含部署方案、架构建议和部署步骤 - 添加安全设计规范,涵盖密码安全、AppSecret验证和服务端API认证 - 补充平台REST API规范,定义Server-to-Server调用接口和错误码 - 创建Java IM服务端SDK计划文档,规划Maven包发布和接口实现 --- README.md | 2 +- docs/DEBUG_PROGRESS.md | 2 +- docs/TEST_PLAN.md | 2 +- .../java/com/xuqm/sdk/sample/SdkIntegrationTest.kt | 2 +- sdk-update/scripts/xuqm_release.gradle.kts | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4232309..bbea774 100644 --- a/README.md +++ b/README.md @@ -284,7 +284,7 @@ PushSDK.setReceivePush(context, enabled = true) ```kotlin val result: UpdateResult = UpdateSDK.checkUpdate( - appId = "ak_xxx", + appKey = "ak_xxx", platform = Platform.ANDROID ) diff --git a/docs/DEBUG_PROGRESS.md b/docs/DEBUG_PROGRESS.md index 33d95b3..581fd2e 100644 --- a/docs/DEBUG_PROGRESS.md +++ b/docs/DEBUG_PROGRESS.md @@ -37,7 +37,7 @@ - 样例 App 的本地联调默认值之前落在 `10.0.2.2`,和当前实际调试 IP 不一致,已统一回 `192.168.113.37`。 - 设备启动时,旧缓存的登录态会让 App 直接进入主界面,随后 IM 接口先打出 `403`。 - `restoreSdkSession()` 之前是异步跑的,旧 session 失效时,主界面可能先出现再刷新失败。 -- `UpdateSDK.checkAppUpdate()` 实际请求的是 `appId=ak_demo_chat`,并且日志已经返回 `versionName=1.0.1`、`versionCode=2`、`needsUpdate=true`、`downloadUrl=https://sentry.xuqinmin.com/files/apk/xuqm-chat-demo-1.0.1.apk`,所以当前看到的更新弹窗是 update-service 这条数据驱动的,不是租户平台版本管理页是否有记录直接决定的。 +- `UpdateSDK.checkAppUpdate()` 实际请求的是 `appKey=ak_demo_chat`,并且日志已经返回 `versionName=1.0.1`、`versionCode=2`、`needsUpdate=true`、`downloadUrl=https://sentry.xuqinmin.com/files/apk/xuqm-chat-demo-1.0.1.apk`,所以当前看到的更新弹窗是 update-service 这条数据驱动的,不是租户平台版本管理页是否有记录直接决定的。 - 版本管理页当前用的是租户应用 `app.id`,而样例 App 仍然使用 `appKey=ak_demo_chat` 作为更新和 IM 的作用域,两个视图不一致时,页面空但弹窗出现是正常现象。 - `emulator-5558` 在接受好友申请后,联系人页仍然保留了 `好友申请(1)` 的可见区域,说明好友申请列表的刷新路径还需要继续排查。 diff --git a/docs/TEST_PLAN.md b/docs/TEST_PLAN.md index 2dfa957..230d057 100644 --- a/docs/TEST_PLAN.md +++ b/docs/TEST_PLAN.md @@ -79,7 +79,7 @@ adb wait-for-device && sleep 15 ### 3.4 测试账号 -| 账号 | 密码 | appId | 用途 | +| 账号 | 密码 | appKey | 用途 | |------|------|-------|------| | user_a | 123456 | ak_demo_chat | 主发送方 | | user_b | 123456 | ak_demo_chat | 接收方 | diff --git a/sample-app/src/androidTest/java/com/xuqm/sdk/sample/SdkIntegrationTest.kt b/sample-app/src/androidTest/java/com/xuqm/sdk/sample/SdkIntegrationTest.kt index 0d16254..73052c0 100644 --- a/sample-app/src/androidTest/java/com/xuqm/sdk/sample/SdkIntegrationTest.kt +++ b/sample-app/src/androidTest/java/com/xuqm/sdk/sample/SdkIntegrationTest.kt @@ -34,7 +34,7 @@ import java.io.File /** * TC-05 / TC-07 / TC-08 / TC-11~15 集成测试 * 运行环境: external (https://dev.xuqinmin.com) - * 测试账号: user_a / user_b (password: 123456, appId: ak_demo_chat) + * 测试账号: user_a / user_b (password: 123456, appKey: ak_demo_chat) * * 设计原则: * - tc05/tc11a/tc11b/tc14/tc99 使用 @BeforeClass 中创建的新鲜 GROUP(testGroupId), diff --git a/sdk-update/scripts/xuqm_release.gradle.kts b/sdk-update/scripts/xuqm_release.gradle.kts index 4a154b5..d3bad32 100644 --- a/sdk-update/scripts/xuqm_release.gradle.kts +++ b/sdk-update/scripts/xuqm_release.gradle.kts @@ -162,7 +162,7 @@ data class ReleaseDefaults( fun fetchReleaseDefaults(tenantUrl: String, appKey: String): ReleaseDefaults? { if (tenantUrl.isBlank()) return null - val url = "$tenantUrl/api/sdk/config?appId=$appKey&platform=ANDROID" + val url = "$tenantUrl/api/sdk/config?appKey=$appKey&platform=ANDROID" val json = runCatching { httpGet(url, "") }.getOrNull() ?: return null if (!parseJsonBool(json, "updateEnabled", false)) return ReleaseDefaults(enabled = false) return ReleaseDefaults( @@ -257,7 +257,7 @@ tasks.register("xuqmRelease") { println("[xuqm] Local version: $versionName ($versionCode), packageName: $applicationId, appKey: $appKey") // ── 2. Check server latest ───────────────────────────────────────── - val listResp = httpGet("$serverUrl/api/v1/updates/app/list?appId=$appKey&platform=ANDROID", apiToken) + val listResp = httpGet("$serverUrl/api/v1/updates/app/list?appKey=$appKey&platform=ANDROID", apiToken) // Find highest published versionCode val serverVersionCode = Regex("\"versionCode\"\\s*:\\s*(\\d+)").findAll(listResp) .mapNotNull { it.groupValues[1].toIntOrNull() } @@ -318,7 +318,7 @@ tasks.register("xuqmRelease") { // ── 4. Upload to update service ─────────────────────────────────── val parts = mutableMapOf( - "appId" to appKey, + "appKey" to appKey, "platform" to "ANDROID", "versionName" to releaseVersionName, "versionCode" to releaseVersionCode,