iOS 环境要求与 SDK 引入
SDK Version: 1.0.0
Platform: iOS
环境要求
- iOS 17 或更高。
- Swift tools 5.9 或更高。
- Xcode 15 或更高版本建议使用当前稳定版。
- BLE 功能必须在支持蓝牙的真机验证。
获取与添加产品
本文档包不包含 SDK 源码或二进制。请通过 xTalk 约定的客户交付渠道获取正式 Swift Package,并以交付清单中的版本和校验信息为准。
SDK 1.0.0 提供:
XTalkMeshSdkLowLatencyPttXTalkBleSdkXTalkDeviceAuthSdkXTalkFileTransferSdkXTalkOtaSdk
在 Xcode 中选择 File → Add Package Dependencies,按交付方式完成下列任一操作:
- 本地交付:选择解压后的 package 根目录。
- 客户专用 Git 地址:使用 xTalk 随交付提供的 URL 和精确版本
1.0.0。
本文档不会虚构公共 Git URL。添加完成后,在 App target 的 General → Frameworks, Libraries, and Embedded Content 或 target dependency 设置中确认产品存在。只勾选实际需要的产品。
如果客户使用自己的 Package.swift,依赖名称和位置以交付清单为准,target 产品声明如下:
.product(name: "XTalkMeshSdk", package: "XTalkMeshSdk"),
.product(name: "LowLatencyPtt", package: "LowLatencyPtt"),
.product(name: "XTalkBleSdk", package: "XTalkBleSdk"),
.product(name: "XTalkDeviceAuthSdk", package: "XTalkDeviceAuthSdk"),
.product(name: "XTalkFileTransferSdk", package: "XTalkFileTransferSdk"),
.product(name: "XTalkOtaSdk", package: "XTalkOtaSdk")
上面的 package identity 可能随客户收到的目录名或 URL 改变;product 名称固定。
权限
在客户 App 的 Info.plist 添加面向用户的蓝牙用途说明:
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Bluetooth is used to discover and communicate with xTalk devices.</string>
如果客户部署目标仍覆盖旧系统策略,可同时提供 NSBluetoothPeripheralUsageDescription。用途说明必须与客户 App 的实际业务一致。
SDK 不负责弹出客户自己的权限引导页。首次扫描前由 App 解释蓝牙用途;出现 .permissionDenied 后引导用户到系统设置,不要循环请求。
导入
import XTalkMeshSdk
import LowLatencyPtt
import XTalkBleSdk
import XTalkDeviceAuthSdk
import XTalkFileTransferSdk
import XTalkOtaSdk
六个产品按业务选用。Mesh、Low Latency PTT、文件传输和 OTA 都通过各自文档定义的 transport 或 BLE 会话协作;只使用认证 SDK 的 UART/其他传输客户无需导入 BLE 产品。
最小编译检查
import XTalkBleSdk
import XTalkDeviceAuthSdk
@MainActor
func makeSdkObjects(transport: any DeviceAuthTransport) {
let ble = XTalkBleClient()
let authenticator = XTalkDeviceAuthenticator(transport: transport)
_ = ble.connectionState
_ = authenticator.state
}
如果模块无法导入,先检查产品是否加入正确的 App target,而不是只加入工程。若真机扫描没有结果,再检查权限、系统蓝牙状态和设备是否广播;模拟器不能替代 BLE 真机验收。
发布构建检查清单
- 客户 App 的 Deployment Target 不低于 iOS 17。
- Release target 同样链接实际使用的产品;不要只在 Debug configuration 中添加。
Info.plist的用途说明存在且可被最终归档读取。- Swift concurrency 警告已处理:SDK 对象和 transport 在 MainActor 上使用。
- 真机完成扫描、连接、
atReady、认证、断开和重连测试。