69 lines
2.3 KiB
Markdown
69 lines
2.3 KiB
Markdown
# DSHWatch 构建与部署指南(v0.1)
|
||
|
||
> 说明:手表与手机必须 **同包名 + 同签名** 才能通过 @system.interconnect 通信。包名统一为 com.dshwatch.app。
|
||
|
||
## 1. 启动中继服务器(DSHWatch_Server)
|
||
|
||
cd DSHWatch_Server
|
||
cp config.example.json config.json # 修改 token
|
||
npm install
|
||
npm start
|
||
|
||
健康检查:GET http://127.0.0.1:8787/health
|
||
|
||
## 2. 配置 Harness 插件(dsh-watch)
|
||
|
||
在 DSH profile 的 cordis.patch.yml 里:
|
||
|
||
- id: dsh-watch
|
||
config:
|
||
mode: relay
|
||
serverUrl: "ws://你的服务器:8787"
|
||
userId: "someone"
|
||
token: "与 config.json 相同"
|
||
reconnectMs: 5000
|
||
timeoutMs: 30000
|
||
|
||
或直连模式:
|
||
|
||
- id: dsh-watch
|
||
config:
|
||
mode: direct
|
||
host: "0.0.0.0"
|
||
port: 18321
|
||
token: "自己定的 token"
|
||
|
||
## 3. 构建手机端 Android APK(DSHWatchPhone)
|
||
|
||
开发阶段可直接用官方 demo 证书(.dsh/downloads/interconnect_demo 里):
|
||
|
||
- 确保 app/libs/xms-wearable-lib_1.4_release.aar 存在(已放)。
|
||
- 放好 keystore.properties(含 keystore 路径/密码),keystore/keystore.jks 在本地。
|
||
- Android Studio 打开,Build -> Build APK。
|
||
|
||
# 已准备:keystore.properties (demo 证书 xmswearable)
|
||
./gradlew assembleDebug
|
||
|
||
注意:keystore.properties 与 keystore/ 不要提交到 git。
|
||
|
||
## 4. 构建手表端 rpk(DSHWatch)
|
||
|
||
AIoT IDE 打开 DSHWatch,用与手机 APK 相同的证书签名。
|
||
|
||
- DSHWatch/sign/debug 与 sign/release 已放入 demo 的 certificate.pem / private.pem(本地,gitignored)。
|
||
- 在 IDE 里「构建」或「发布」,生成 rpk。
|
||
|
||
## 5. 安装与联调
|
||
|
||
1. 手机安装 APK;手表装 rpk(小米运动健康 -> Debug -> 第三方应用)。
|
||
2. 手机 APP 打开,填服务器地址 / userId / token,点刷新。
|
||
3. 手表打开 DSHWatch,确认 interconnect 连上手机(显示"已连接")。
|
||
4. 手表发指令 -> 手机转发 -> 服务器 -> Harness -> 回显。
|
||
|
||
## 6. 常见坑
|
||
|
||
- **签名不一致**:手表 rpk 与手机 APK 必须同一套证书;改了证书要重装两个端。
|
||
- **连接状态拿不到**:进页面是 DISCONNECTED 是正常的,需轮询 getReadyState。
|
||
- **包名不一致**:两端都是 com.dshwatch.app。
|
||
- **麦克风**:MP 手环 10/10 Pro 大概率不支持应用级录音(system.record 官方表未列)。
|