---
title: ExtensionFoundation
framework: ExtensionFoundation
role: collection
role_heading: Framework
platforms: [iOS 16.0+, iPadOS 16.0+, Mac Catalyst 16.0+, macOS 13.0+, tvOS 17.4+, visionOS 1.1+, watchOS 9.0+]
path: extensionfoundation
---

# ExtensionFoundation

Create executable bundles to extend the functionality of other apps.

## Mentioned in

Adding support for app extensions to your app Building an app extension to support a host app

## Overview

Overview An app extension is an executable code bundle that extends the capabilities of the system, or the capabilities of another app. At the system level, app extensions give you a way to add your custom capabilities to system features. For example, Creating a widget extension display your app’s content in specific locations like the iOS Home Screen and Lock screen. To build app extensions for system features, you typically use a different framework or a dedicated set of types instead of this framework. Adopt the ExtensionFoundation framework directly when you want to add support for app extensions to your own apps. An app extension model gives you a way to extend your app’s capabilities safely in several ways. If your app needs to run risky code, you might isolate that code in an app extension to prevent it from affecting the rest of your app. Alternatively, a productivity app might give other developers a way to create app extensions that extend the app’s core feature set. Host apps use the ExtensionFoundation framework to find and launch available app extensions. App extensions use this framework to communicate with the host app and support non-UI features. If your app also integrates custom UI from its app extensions, adopt the ExtensionKit framework in addition to this one.

## Topics

### Essentials

- [Adding support for app extensions to your app](extensionfoundation/adding-support-for-app-extensions-to-your-app.md)

### App-extension setup

- [Building an app extension to support a host app](extensionfoundation/building-an-app-extension-to-support-a-host-app.md)
- [AppExtension](extensionfoundation/appextension.md)
- [AppExtensionConfiguration](extensionfoundation/appextensionconfiguration.md)
- [ConnectionHandler](extensionfoundation/connectionhandler.md)

### Host-app configuration

- [Discovering app extensions from your app](extensionfoundation/discovering-app-extensions-from-your-app.md)
- [AppExtensionProcess](extensionfoundation/appextensionprocess.md)
- [AppExtensionIdentity](extensionfoundation/appextensionidentity.md)

### Extension-point management

- [AppExtensionPoint](extensionfoundation/appextensionpoint.md)
- [ExtensionPointDefining](extensionfoundation/extensionpointdefining.md)
