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

# AccessoryTransportSession

A class that manages a transport session between the extension and the system.

```
class AccessoryTransportSession
```

## Overview

The [`AccessoryTransportAppExtension`](/documentation/AccessoryTransportExtension/AccessoryTransportAppExtension) protocol’s [`accept(sessionRequest:)`](/documentation/AccessoryTransportExtension/AccessoryTransportAppExtension/accept(sessionRequest:)) method receives a [`AccessoryTransportSession.Request`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/Request) object containing an instance of this class.

## Topics

### Managing session requests

[`class Request`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/Request)

An incoming session request that your extension accepts or rejects.

### Handling session events

[`protocol EventHandler`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/EventHandler)

A protocol that defines methods for handling transport session events.

[`enum DataEvent`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/DataEvent)

An enumeration of data events that the transport extension receives.

### Managing the session life cycle

[`func cancel(error: AccessoryTransportSession.Error?)`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/cancel(error:))

Cancels the session.

### Accessing session properties

[`var description: String`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/description)

A string that describes the transport session.

### Sending data

[`func sendMessageToDataProvider(TransportMessage) throws(AccessoryTransportSession.Error)`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/sendMessageToDataProvider(_:))

Sends a message to the data provider extension.

### Creating feature sessions

[`func makeFeatureSession<H>(() -> H) throws(AccessoryTransportSession.Error) -> H.Session`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/makeFeatureSession(_:))

Creates a feature session for the provided handler.

### Handling errors

[`enum Error`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/Error)

Errors that can occur with an accessory transport session.

### Determining the communication method

[`var transport: AccessoryTransport?`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/transport)

A transport method that the session uses to communicate with the accessory.

[`var transportStateRestoreIdentifier: String?`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/transportStateRestoreIdentifier)

An optional identifier for restoring transport state across sessions.

[`var pushToken: Data?`](/documentation/AccessoryTransportExtension/AccessoryTransportSession/pushToken)

A token that identifies the iOS device to the Apple Push Notification service for routing accessory responses over the internet.

## Relationships

### Conforms To

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

---

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)