feat(sdk): 绑定时上报设备 log 到 update-metadata 并内聚双层绑定
- bind(userId:) 内聚为硬绑 + getVersion + 软绑 + updateMetadata 一次原子调用, 软绑失败自动硬解绑回滚 + 清状态;集成方无需感知双层绑定 - fetchLatestFirmware 简化为对账上报 + checkUpgrade 两步,不再重复软绑 - VersionInfo 增加 log: [String: Any]?,走 JSONSerialization 解析(放弃 Codable); SDK 暴露只读 versionLog,断连/解绑/软绑回滚时清空 - ShipmentSnDeviceService 新增 updateMetadata(sn:data:),抽出 performPOST 共享 HTTP 编排,新增 postAnyJSON 支持 [String: Any] body - 老固件不返回 log → versionLog == nil → 自动跳过 updateMetadata,前向兼容 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -41,6 +41,10 @@ public final class DuooomiBleSDK: NSObject {
|
||||
didSet { notifyMain { self.delegate?.sdk(self, didUpdateVersion: self.version) } }
|
||||
}
|
||||
|
||||
/// 设备返回的 `log` 字段(任意 JSON 对象)。`getVersion` 成功时写入,断连/解绑时清空。
|
||||
/// `fetchLatestFirmware` 软绑后透传给 shipment-sn `update-metadata`,集成方一般无需直接读。
|
||||
public internal(set) var versionLog: [String: Any]?
|
||||
|
||||
public internal(set) var isActivated: Bool = false {
|
||||
didSet {
|
||||
guard isActivated != oldValue else { return }
|
||||
@@ -174,6 +178,7 @@ public final class DuooomiBleSDK: NSObject {
|
||||
self.connectedDevice = nil
|
||||
self.deviceInfo = nil
|
||||
self.version = ""
|
||||
self.versionLog = nil
|
||||
self.isActivated = false
|
||||
self.btState = .disconnected
|
||||
self.protocolService.stopListening()
|
||||
|
||||
Reference in New Issue
Block a user