门锁SDK集成
一、概述
本文主要介绍 iOS 如何集成门锁 SDK。
二、前提条件
三、功能特性
3.1 主体功能
- 支持 Aqara 门锁入网
- 支持 Aqara 门锁控制
3.2 SDK大小
| 依赖库 | 说明 | 大小 |
|---|---|---|
| AHRNRuntime | RN 运行时静态库(已内置 React Native 运行时) | - |
| LMRnFramework | 门锁 RN 桥接层及插件资源 | - |
| LMFramework | Aqara 基础库 | - |
注意:以上均为集成 SDK 后编译可执行文件的增量参考,实际增量取决于宿主 App 已有依赖的重合程度。
3.3 支持设备品类
详情查看设备清单
四、集成
4.1 iOS SDK 目录结构
LMRnFramework/
├── LMRnFramework.framework # 门锁 RN 桥接层
├── AHRNRuntime.framework # RN 运行时静态库
├── hermes.xcframework # Hermes 引擎
├── Resources/
│ └── PKGResource/ # 门锁 RN 插件资源包
└── LMRnFramework.podspec
内容包含:
- Aqara 桥接层:
LMRnFramework.framework - RN 运行时:
AHRNRuntime.framework、hermes.xcframework(已以静态库方式提供,无需再集成 React Native 源码) - RN 插件包:
Resources/PKGResource目录
4.2 使用方式
门锁 SDK 基于 LMRnFramework 提供,RN 运行时已封装在 AHRNRuntime.framework 中。推荐通过 CocoaPods 本地依赖集成。
重要变更:旧版需要手动集成
React、React-Core等 RN 源码 pod 的方式已废弃,请勿再添加相关依赖。
1. 权限配置
SDK 需要向 iOS 申请以下系统权限:
NSLocalNetworkUsageDescription本地网络查找权限NSLocationWhenInUseUsageDescription使用地理位置权限(手机获取 WiFi 名称,iOS 13 需要确认 App 已开启地理位置权限;iOS 14 需要确认 App 开启精确位置权限。如果上述配置后仍然获取不到 WiFi 名称,则需要开发者另外处理,比如手动输入 WiFi 名称)NSBluetoothAlwaysUsageDescription获取蓝牙权限
可以在宿主项目的 Info.plist 文件中快捷添加如下配置:
<key>NSBonjourServices</key>
<array>
<string>_aqara._tcp.</string>
</array>
<key>NSLocalNetworkUsageDescription</key>
<string>需要使用本地网络以发现局域网上的设备信息</string>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>允许本 App 使用蓝牙连接</string>
2. 拷贝 SDK
将 LMRnFramework 文件夹复制到工程的 AqaraFrameworks 目录下(与 Demo 工程目录结构保持一致)。
3. 配置 Podfile
门锁 SDK 依赖基础库,请确保已按环境搭建完成 LMFramework、LMCommonUISwift、LMSwiftCore 等基础 SDK 的集成。
在 Podfile 中添加门锁 SDK 依赖:
pod 'LMRnFramework', :path => './AqaraFrameworks/LMRnFramework'
LMRnFramework 通过 podspec 自动引入以下依赖,无需手动添加:
| 依赖 | 说明 |
|---|---|
| AHRNRuntime.framework | RN 运行时静态库 |
| hermes.xcframework | Hermes JS 引擎 |
| SocketRocket | WebSocket 通信 |
| TOCropViewController | 图片裁剪 |
| LMFramework | Aqara 基础库 |
| LMCommonUISwift | Swift UI 组件库 |
| LMSwiftCore | Swift 基础库 |
执行 pod install 安装即可。至此,您已完成门锁 SDK 集成。
五、SDK 使用
SDK 使用方式,请参见下篇文档 门锁SDK使用。