---
title: ContactProviderManager
framework: ContactProvider
role: symbol
role_heading: Class
platforms: [iOS 18.0+, iPadOS 18.0+]
path: contactprovider/contactprovidermanager
---

# ContactProviderManager

An interface for the app to control its extension.

## Declaration

```swift
class ContactProviderManager
```

## Overview

Overview Use this class to initially enable your contact provider app extension, making it visible to the system and other apps. To use the default domain, create a manager and call enable(). This is an async call, because it may prompt the person using your app to approve turning on the contact provider. import ContactProvider

func enableExtensionExample() async {     do {         // The app creates a contact provider manager with a default domain.         let manager = try ContactProviderManager()                  // May prompt the person to enable the default domain.         try await manager.enable()     } catch {         // Handle the error.     } } Signaling the app extension You also use ContactProviderManager when you need to invoke the app extension on demand. For example, when your app knows new contacts are available from your server, call signalEnumerator(for:) so the extension can fetch and provide the changed contacts. import ContactProvider

func refreshForNewContacts() async {     do {         let manager = try ContactProviderManager()         try await manager.signalEnumerator()     } catch {         // Handle the error.     } } important: You can only use ContactProviderManager in an app, not in an app extension.

## Topics

### Creating a contact provider manager

- [init(domainIdentifier:)](contactprovider/contactprovidermanager/init(domainidentifier:).md)

### Invoking the app extension

- [signalEnumerator(for:)](contactprovider/contactprovidermanager/signalenumerator(for:).md)

### Managing the contact provider manager life cycle

- [invalidate()](contactprovider/contactprovidermanager/invalidate().md)

### Managing the domain

- [domain](contactprovider/contactprovidermanager/domain.md)
- [enable()](contactprovider/contactprovidermanager/enable().md)
- [isEnabled](contactprovider/contactprovidermanager/isenabled.md)
- [reset()](contactprovider/contactprovidermanager/reset().md)
- [disable()](contactprovider/contactprovidermanager/disable().md)
