<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "tvOS: -",
    "visionOS: -",
    "watchOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "XPC",
  "identifier" : "/documentation/XPC/xpc_listener_t",
  "metadataVersion" : "0.1.0",
  "role" : "Type Alias",
  "symbol" : {
    "kind" : "Type Alias",
    "modules" : [
      "XPC"
    ],
    "preciseIdentifier" : "c:@T@xpc_listener_t"
  },
  "title" : "xpc_listener_t"
}
-->

# xpc_listener_t

A C type that performs tasks for clients across process boundaries.

```
typealias xpc_listener_t = OS_xpc_listener
```

## Discussion

To implement an XPC service, create a listener and respond to incoming session requests.

## Topics

### Creating a listener

[`extern xpc_listener_txpc_listener_create(const char *service, dispatch_queue_t target_queue, xpc_listener_create_flags_t flags, xpc_listener_incoming_session_handler_t incoming_session_handler, xpc_rich_error_t*error_out);`](/documentation/XPC/xpc_listener_create)

Creates the server side of an XPC service using the specified service name.

[`typedef enum { ... } xpc_listener_create_flags_t;`](/documentation/XPC/xpc_listener_create_flags_t)

Options that control the listener’s configuration.

[`typealias xpc_listener_incoming_session_handler_t`](/documentation/XPC/xpc_listener_incoming_session_handler_t)

A block that receives an incoming peer session request from a client.

[`extern char *xpc_listener_copy_description(xpc_listener_t listener);`](/documentation/XPC/xpc_listener_copy_description)

Copies the description string of a listener.

### Managing the life cycle

[`extern bool xpc_listener_activate(xpc_listener_t listener, xpc_rich_error_t*error_out);`](/documentation/XPC/xpc_listener_activate)

Activates an inactive listener.

[`extern void xpc_listener_cancel(xpc_listener_t listener);`](/documentation/XPC/xpc_listener_cancel)

Cancels a listener.

[`extern void xpc_listener_reject_peer(xpc_session_t peer, const char *reason);`](/documentation/XPC/xpc_listener_reject_peer)

Rejects an incoming peer session request.

### Working with code signing

[`func xpc_listener_set_peer_code_signing_requirement(xpc_listener_t, UnsafePointer<CChar>) -> Int32`](/documentation/XPC/xpc_listener_set_peer_code_signing_requirement(_:_:))



---

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)