---
title: XPCSession
framework: xpc
role: symbol
role_heading: Class
path: xpc/xpcsession
---

# XPCSession

A type that sends messages to a server process.

## Declaration

```swift
class XPCSession
```

## Overview

Overview XPC sessions are stateful connections you use to send structured messages to a separate process. Once established, a session remains active until one side of the connection cancels it, at which point the system invalidates the connection.

## Topics

### Creating a session

- [init(xpcService:targetQueue:options:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(xpcservice:targetqueue:options:incomingmessagehandler:cancellationhandler:)-407h2.md)
- [init(xpcService:targetQueue:options:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(xpcservice:targetqueue:options:incomingmessagehandler:cancellationhandler:)-9f4u0.md)
- [init(xpcService:targetQueue:options:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(xpcservice:targetqueue:options:incomingmessagehandler:cancellationhandler:)-bel3.md)
- [init(xpcService:targetQueue:options:cancellationHandler:)](xpc/xpcsession/init(xpcservice:targetqueue:options:cancellationhandler:).md)
- [init(machService:targetQueue:options:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(machservice:targetqueue:options:incomingmessagehandler:cancellationhandler:)-l3rz.md)
- [init(machService:targetQueue:options:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(machservice:targetqueue:options:incomingmessagehandler:cancellationhandler:)-2xuyi.md)
- [init(machService:targetQueue:options:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(machservice:targetqueue:options:incomingmessagehandler:cancellationhandler:)-6jz7y.md)
- [init(machService:targetQueue:options:cancellationHandler:)](xpc/xpcsession/init(machservice:targetqueue:options:cancellationhandler:).md)
- [XPCSession.InitializationOptions](xpc/xpcsession/initializationoptions.md)
- [setTargetQueue(_:)](xpc/xpcsession/settargetqueue(_:).md)

### Managing the life cycle

- [activate()](xpc/xpcsession/activate().md)
- [setIncomingMessageHandler(_:)](xpc/xpcsession/setincomingmessagehandler(_:)-2ukdh.md)
- [setIncomingMessageHandler(_:)](xpc/xpcsession/setincomingmessagehandler(_:)-5lu26.md)
- [setIncomingMessageHandler(_:)](xpc/xpcsession/setincomingmessagehandler(_:)-75ou9.md)
- [cancel(reason:)](xpc/xpcsession/cancel(reason:).md)
- [setCancellationHandler(_:)](xpc/xpcsession/setcancellationhandler(_:).md)

### Sending messages

- [send(_:)](xpc/xpcsession/send(_:).md)
- [send(_:replyHandler:)](xpc/xpcsession/send(_:replyhandler:)-3wjln.md)
- [send(_:replyHandler:)](xpc/xpcsession/send(_:replyhandler:)-9an0u.md)
- [send(message:)](xpc/xpcsession/send(message:).md)
- [send(message:replyHandler:)](xpc/xpcsession/send(message:replyhandler:).md)
- [sendSync(_:)](xpc/xpcsession/sendsync(_:)-8a284.md)
- [sendSync(_:)](xpc/xpcsession/sendsync(_:)-88u0s.md)
- [sendSync(message:)](xpc/xpcsession/sendsync(message:).md)

### Initializers

- [init(endpoint:targetQueue:options:cancellationHandler:)](xpc/xpcsession/init(endpoint:targetqueue:options:cancellationhandler:).md)
- [init(endpoint:targetQueue:options:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(endpoint:targetqueue:options:incomingmessagehandler:cancellationhandler:)-2jmkk.md)
- [init(endpoint:targetQueue:options:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(endpoint:targetqueue:options:incomingmessagehandler:cancellationhandler:)-546jo.md)
- [init(endpoint:targetQueue:options:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(endpoint:targetqueue:options:incomingmessagehandler:cancellationhandler:)-6zd1x.md)
- [init(machService:targetQueue:options:requirement:cancellationHandler:)](xpc/xpcsession/init(machservice:targetqueue:options:requirement:cancellationhandler:).md)
- [init(machService:targetQueue:options:requirement:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(machservice:targetqueue:options:requirement:incomingmessagehandler:cancellationhandler:)-5pk9g.md)
- [init(machService:targetQueue:options:requirement:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(machservice:targetqueue:options:requirement:incomingmessagehandler:cancellationhandler:)-7o5oq.md)
- [init(machService:targetQueue:options:requirement:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(machservice:targetqueue:options:requirement:incomingmessagehandler:cancellationhandler:)-84ll1.md)
- [init(xpcService:targetQueue:options:requirement:cancellationHandler:)](xpc/xpcsession/init(xpcservice:targetqueue:options:requirement:cancellationhandler:).md)
- [init(xpcService:targetQueue:options:requirement:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(xpcservice:targetqueue:options:requirement:incomingmessagehandler:cancellationhandler:)-3p0jf.md)
- [init(xpcService:targetQueue:options:requirement:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(xpcservice:targetqueue:options:requirement:incomingmessagehandler:cancellationhandler:)-6jxdc.md)
- [init(xpcService:targetQueue:options:requirement:incomingMessageHandler:cancellationHandler:)](xpc/xpcsession/init(xpcservice:targetqueue:options:requirement:incomingmessagehandler:cancellationhandler:)-osu4.md)

### Instance Methods

- [setPeerRequirement(_:)](xpc/xpcsession/setpeerrequirement(_:).md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [Escapable](swift/escapable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Interprocess communication

- [Creating XPC services](xpc/creating-xpc-services.md)
- [XPCListener](xpc/xpclistener.md)
- [XPCReceivedMessage](xpc/xpcreceivedmessage.md)
- [xpc_listener_t](xpc/xpc_listener_t.md)
- [xpc_session_t](xpc/xpc_session_t-10if0.md)
