---
title: UIPrintServiceExtension
framework: uikit
role: symbol
role_heading: Class
path: uikit/uiprintserviceextension
---

# UIPrintServiceExtension

An extension that locates and sets up a printer without a configuration profile.

## Declaration

```swift
@MainActor class UIPrintServiceExtension
```

## Overview

Overview Support cloud printing by creating an extension instead of requiring users to install a managed configuration profile to set up an AirPrint printer. Create an extension by subclassing UIPrintServiceExtension. By creating your own extension, you can expose a cloud printer destination to a UIPrinterPickerController. The extension matches printer destinations that fulfill the specified print-job attributes. Create an instance of UIPrinterDestination to describe a printer to the system. The extension can then search for the printer, or set of printers, using printerDestinations(for:). This method matches the requirements of a UIPrintInfo object and returns an array of UIPrinterDestination.

## Topics

### Locating a printer

- [printerDestinations(for:)](uikit/uiprintserviceextension/printerdestinations(for:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)

## See Also

### Related Documentation

- [App extensions](uikit/app-extensions.md)

### Printer service discovery

- [UIPrinterDestination](uikit/uiprinterdestination.md)
