iOS SDK 1.0.0 Integration Overview
SDK Version: 1.0.0
Platform: iOS
This guide covers six independent Swift SDK products for device access, Mesh messaging, low-latency voice, file/image transfer, and firmware upgrades:
| Product | Responsibility |
|---|---|
XTalkBleSdk | BLE scanning, connection, GATT readiness, AT/RF transport, and device information queries |
XTalkDeviceAuthSdk | Transport-neutral AT encoding probes, challenge authentication, and DID retrieval |
XTalkMeshSdk | Mesh text/voice, friend and map payloads, acknowledgements, and routes |
LowLatencyPtt | Dedicated low-latency half-duplex voice with verified RF restoration |
XTalkFileTransferSdk | File bytes, image transcoding, fragmentation, acknowledgements, and restoration |
XTalkOtaSdk | TurMass and BT5632F upgrades, progress, and cancellation |
iOS SDK 1.0.0 does not provide a standalone Device Init product. Business configuration after authentication belongs in the customer app or a separately delivered product. Do not place initialization parameters, network calls, or business state inside the authentication transport.
Module boundaries
| Capability | BLE | Auth | Customer app |
|---|---|---|---|
| Scan, connect, discover GATT, subscribe | Owns | Does not own | Shows state and selects a device |
| AT encoding and transaction serialization | Owns | Uses through transport | Must not write concurrently |
| Challenge, signature verification, DID read | Does not own | Owns | Persists successful result |
| Permission explanation, retry policy, UI lifecycle | Publishes state | Publishes state | Owns |
| Post-authentication business configuration | Provides AT/RF channel | Does not own | Owns |
Recommended integration sequence
Obtain the official Swift package separately
→ add it to Xcode and configure Bluetooth permissions
→ create XTalkBleClient
→ scan and connect
→ wait for atReady
→ adapt the BLE client to DeviceAuthTransport
→ authenticate and store the DID only after success
→ start customer business operations
→ disconnect / teardown
Success gates
connectionState == .connectedonly means that the BLE link is connected.atReady == trueis required before AT, RF, or authentication operations.deviceControlReady == trueis required for reliable battery and version queries.- Authentication is complete only when
authenticate()returns successfully. Protected business flow must stop on failure. - Use
disconnect()for a reusable temporary disconnection andteardown()to permanently finish the current client.