<!--
{
  "availability" : [
    "iOS: 27.3.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AccessoryTransportExtension",
  "identifier" : "/documentation/AccessoryTransportExtension/AccessoryWorker",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Accessory Transport Extension"
    ],
    "preciseIdentifier" : "s:27AccessoryTransportExtension0A6WorkerV"
  },
  "title" : "AccessoryWorker"
}
-->

# AccessoryWorker

A feature that carries data between your data provider and transport extensions.

```
struct AccessoryWorker
```

## Overview

An *accessory worker* exchanges information with your accessory in the background, without waiting for a person to open your app. Create an instance of this structure in the `extensionPoint` of your [`AccessoryDataProvider`](/documentation/AccessoryTransportExtension/AccessoryDataProvider) extension, and open sessions from your transport extension with [`makeFeatureSession(_:)`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/makeFeatureSession(_:)) in response to events from your accessory. Your app defines the data format, and the Accessory Transport Extension framework treats the data as opaque, with no additional encryption. Enroll the feature for each accessory with `requestAuthorization(for:)`. For more information, see [Sending data to an accessory in the background](/documentation/AccessoryTransportExtension/sending-data-to-an-accessory-in-the-background).

## Topics

### Handling data-provider sessions

[`typealias Handler`](/documentation/AccessoryTransportExtension/AccessoryWorker/Handler)

A handler type for the session’s data provider.

[`class Session`](/documentation/AccessoryTransportExtension/AccessoryWorker/Session)

A class that represents the data provider within a session.

### Handling transport-extension sessions

[`class FeatureSession`](/documentation/AccessoryTransportExtension/AccessoryWorker/FeatureSession)

A class that represents the session’s transport extension.

### Checking authorization

[`enum AccessoryFeatureAuthorizationStatus`](/documentation/AccessoryTransportExtension/AccessoryFeatureAuthorizationStatus)

A status that describes whether the system authorizes a feature for an accessory.

### Identifying the feature

### Creating the feature

[`init(() -> any AccessoryFeatureSessionHandler<AccessoryWorker.Session>)`](/documentation/AccessoryTransportExtension/AccessoryWorker/init(_:))

Initializes a worker feature with a handler factory.

## Relationships

### Conforms To

[`Identifiable`](/documentation/Swift/Identifiable)

[`Escapable`](/documentation/Swift/Escapable)

[`Sendable`](/documentation/Swift/Sendable)

[`AccessoryFeatureAuthorizing`](/documentation/AccessoryTransportExtension/AccessoryFeatureAuthorizing)

[`Copyable`](/documentation/Swift/Copyable)

[`Capability`](/documentation/ExtensionFoundation/AppExtensionPoint/Capability)

[`AccessoryFeature`](/documentation/AccessoryTransportExtension/AccessoryFeature)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)