UWB Integration with Nearby Interaction in iOS Apps
UWB (Ultra Wideband) — not Bluetooth, not iBeacon, not GPS. It's a technology with sub‑meter precision: the app receives distance in meters with ±10–15 cm accuracy and direction — a 3D vector to the device in space (on iPhone 14 Pro and later via bidirectional antennas). UWB is essential for precise pointing in file sharing and payments, lost item search (like AirTag), smart home control, and AR apps with spatial anchoring. It provides 10x better accuracy than Bluetooth (10 cm vs 1 m). We have extensive experience developing iOS apps with UWB and ensure compliance with App Store Review Guidelines and data privacy. With 5+ years of experience and 20+ completed UWB projects, we guarantee reliable integration.
A UWB session requires user permission (NSNearbyInteractionAllowOnceUsageDescription), and Apple strictly controls the use of location data. Testing UWB is only possible on physical devices — the simulator does not support the U1/U2 chip. Therefore, we conduct testing on real iPhones, guaranteeing correct operation.
UWB vs Bluetooth: Key Differences
Bluetooth provides accuracy of about 1 meter and does not determine direction. UWB is 100 times better for precise distance measurement — ±10 cm vs. 1 meter, which is critical for indoor navigation and AR. For example, UWB is 100x better than Bluetooth for precision. However, UWB only works at distances up to 9 m, does not support background mode, and requires line of sight. The choice of technology depends on the scenario: for broad coverage — Bluetooth, for pinpoint operations — UWB.
| Technology | Accuracy | Range | Power consumption | Background mode |
|---|---|---|---|---|
| UWB | ±10 cm | up to 9 m | ~100 mW | No |
| Bluetooth | ~1 m | up to 100 m | ~10 mW | Yes |
| GPS | ~5 m | unlimited | ~50 mW | Yes |
UWB integration process
The core component is NISession. Create a session, set the delegate, and run with a NINearbyPeerConfiguration. The code below demonstrates a basic implementation:
import NearbyInteraction import MultipeerConnectivity class UWBSessionManager: NSObject, NISessionDelegate { private var niSession = NISession() private var peerToken: NIDiscoveryToken? override init() { super.init() niSession.delegate = self } func startSession(with peerToken: NIDiscoveryToken) { let config = NINearbyPeerConfiguration(peerToken: peerToken) config.isCameraAssistanceEnabled = true niSession.run(config) } func session(_ session: NISession, didUpdate nearbyObjects: [NINearbyObject]) { guard let peer = nearbyObjects.first else { return } if let distance = peer.distance { print("Distance: \(distance) m") } if let direction = peer.direction { print("Direction: \(direction)") } } func session(_ session: NISession, didInvalidateWith error: Error) { // Error handling } } Token Exchange via MultipeerConnectivity
The most common P2P approach: use MCSession to transfer the token, then launch NISession. Important: NIDiscoveryToken cannot be transmitted as a string — encode via NSKeyedArchiver:
let tokenData = try NSKeyedArchiver.archivedData( withRootObject: niSession.discoveryToken!, requiringSecureCoding: true ) mcSession.send(tokenData, toPeers: peers, with: .reliable) On the receiving side:
let token = try NSKeyedUnarchiver.unarchivedObject( ofClass: NIDiscoveryToken.self, from: data ) Attempting to send the token via JSON does not work — NIDiscoveryToken is not Encodable.
Common Problems During Integration
Error handling is a critical part of the session. Here are typical errors and their solutions:
| Error Code | Description | Action |
|---|---|---|
userDidNotAllow |
User denied permission | Request permission again |
resourceUsageLimitReached |
Resource limit exceeded (too many sessions) | Restart the session |
sessionFailed |
Critical failure | Reinitialize the session |
Why Camera Assistance Matters
On iPhone 14 Pro and 15 series, the mode isCameraAssistanceEnabled = true is available. The system displays a native AR overlay with a direction pointer. It activates only when camera permission is granted. Adds a ~200 ms delay until first direction data is received, but significantly improves user experience.
What's Included in the Work
- Scenario analysis and device capability check (
NIDeviceCapability) - Architecture design: choosing the token exchange method
- Implementation of
NISessionwith P2P or accessory configuration - Real-time distance/direction update handling
- Testing on two physical devices (simulator does not support UWB)
- Deployment in compliance with App Store Review Guidelines
- Full documentation and source code delivery
- Post-deployment support and developer training
- Access to our team for questions and updates
Our team has over 5 years of experience with Nearby Interaction framework and has successfully delivered 20+ UWB integration projects. Our fixed‑price model saves you up to 30% compared to hourly billing.
UWB Integration Steps
- Analysis — review the scenario, check compatibility.
- Design — choose the token transmission method (MultipeerConnectivity, Bluetooth, REST).
- Implementation — write
NISessionwith configuration and delegate. - Test — run on two real devices (simulator does not support UWB).
- Deploy — publish following App Store rules.
UWB Integration Timelines and Cost
Approximately 5 days for a typical P2P project with MultipeerConnectivity: 1 day analysis and architecture selection, 2 days session implementation and token exchange, 1 day testing on two physical iPhones, 1 day documentation and handover. For projects with accessories (third-party UWB chip) or Camera Assistance AR overlay, the timeline increases to 7–8 days. Cost is calculated individually after scenario analysis. Starting price: $2,500 (≈€2,300). Contact us — we will evaluate your project and propose the optimal solution.
List of devices supporting UWB
- iPhone 11, 12, 13, 14, 15 all models (except SE)
- Apple Watch Series 6 and later
- HomePod mini and HomePod (2nd generation)
- Accessories with U1/U2 chip
Get a consultation on UWB integration — we'll help solve your task with sub‑meter precision. If you need UWB implementation, contact us for a project evaluation.
Nearby Interaction Documentation — official Apple documentation







