A known Wi-Fi Aware device that your app can connect to.
Your app may request the system securely pair and grant access to remote devices. Use
[AccessorySetupKit](https://developer.apple.com/documentation/accessorysetupkit/) or
[DeviceDiscoveryUI](https://developer.apple.com/documentation/devicediscoveryui)
to add the devices to the set of `WAPairedDevice.Devices` that your app may connect to on-demand.
The list of paired devices can change over time as a person adds and removes devices from the system.
Provides a snapshot of all the paired devices known to your app.
This method gets an `AsyncSequence` that provides snapshots of all ``Devices`` currently paired and known to your app
that match the provided predicate, and provides updates when the snapshot of ``Devices`` matching that predicate changes.
The sequence outputs an empty dictionary if there are no paired devices matching the
predicate that are known to your app, or if a person removes all of your app's matching paired devices.
You can select the set of `Devices` matching a filter from this property using the code below:
```swift
let filter = #Predicate<WAPairedDevice> { $0.pairingInfo?.vendorName.starts(with: "Example Inc") ?? false }
// Get a snapshot of all paired devices at the current moment.
guard let devices = try await WAPairedDevice.allDevices(matching:filter).current() { return }
// Get a snapshot of all paired devices at the current moment, and get a new snapshot each time a device is added, changed, or removed.
for try await devices in WAPairedDevice.allDevices(matching:filter) {
// Process update.
}
```
- Parameter matching: The predicate that filters the devices. The system only provides updates for devices matching this predicate.
- Returns: A new ``DevicesSequence`` that returns ``Devices`` elements holding a snapshot of the currently paired devices known to your app.
get · iOS 26.0+
allDevices
TypeScript
static get allDevices(): WAPairedDevice_DevicesSequence
Swift declaration
static var allDevices: WAPairedDevice.DevicesSequence { get }
Provides a snapshot of all the paired devices known to your app.
This property gets an `AsyncSequence` and provides updates with a new ``WAPairedDevice/Devices``
snapshot when the set of paired devices known to your app changes.
The sequence outputs an empty dictionary if there are no paired devices known to your app, or if a person removes all of your app's paired devices.
You can select the set of `Devices` from this property using the following code snippet:
```swift
// Get a snapshot of all paired devices at the current moment.
guard let devices = try await WAPairedDevice.allDevices.current() { return }
// Get a snapshot of all paired devices at the current moment, and a new snapshot each time a device is added, changed, or removed.
for try await devices in WAPairedDevice.allDevices {
// Process update.
}
```
- Returns: A new ``WAPairedDevice/DevicesSequence`` that returns ``WAPairedDevice/Devices`` elements holding a snapshot of the currently paired devices known to the app.
get · iOS 26.0+
description
TypeScript
get description(): string
Swift declaration
var description: String { get }
A string description of the publisher.
get · iOS 26.0+
pairingInfo
TypeScript
get pairingInfo(): (WAPairedDevice_PairingInfo) | null
Swift declaration
let pairingInfo: WAPairedDevice.PairingInfo?
The unauthenticated information provided by the device before a person pairs it for the first time.
The value is `nil` if the information is unavailable. The values provide a capture of what the system receives prior to the first pairing the device, and don't reflect any information received post-pairing. If your app needs more up-to-date info, query the device via the secure Wi-Fi Aware data path.
- Warning: Don't use these values for any purpose other than to assist a person during the initial one-time pairing process.
Because the system receives the values before the initial pairing, they're transmitted over an insecure, unauthenticated, and unencrypted channel. Consequently, they may be intercepted or manipulated by an attacker, making it impossible to verify their accuracy.
Therefore, if your app requires reliable and detailed information about the connected device, it needs to obtain it through the secure Wi-Fi Aware data path after pairing is complete, rather than relying on the content in this structure.
get · iOS 26.0+
id
TypeScript
get id(): number
Swift declaration
let id: WAPairedDevice.ID
A stable ID that you can use to uniquely identify a device.
The ID is stable for the lifetime of a single app install on a single device. This value is the same as the value provided in
[AccessorySetupKit](https://developer.apple.com/documentation/accessorysetupkit/)'s `ASAccessory/wifiAwarePairedDeviceID`.
get · iOS 26.0+
name
TypeScript
get name(): (string) | null
Swift declaration
let name: String?
The user-provided name of the device as a string, or `nil` if not available.