Skip to main content
App extensions let users extend your app’s functionality within other apps and system contexts. This page covers common extension types beyond widgets, App Clips, and specialized categories.

Share extensions

Share extensions appear in the iOS Share Sheet, allowing users to share content to your app from any app.

Extension point

PropertyValue
Typeshare
Extension Pointcom.apple.share-services
FrameworksNone (can use React Native with pods.rb)
App GroupsEnabled by default
Embedded SwiftYes

Creating a share extension

npx create-target share
Configure accepted content types in Info.plist:
<key>NSExtensionAttributes</key>
<dict>
  <key>NSExtensionActivationRule</key>
  <dict>
    <key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
    <integer>1</integer>
    <key>NSExtensionActivationSupportsImageWithMaxCount</key>
    <integer>10</integer>
  </dict>
</dict>
See the Share Extensions guide for implementation details.

Action extensions

Action extensions appear in the Share Sheet as headless actions that process content.

Extension point

PropertyValue
Typeaction
Extension Pointcom.apple.services
FrameworksNone

Creating an action

npx create-target action
Actions can run JavaScript on web pages:
// targets/action/assets/index.js
class Action {
  run({ extensionName, completionFunction }) {
    // Process the page content
    const data = { title: document.title };
    completionFunction(data);
  }
  
  finalize() {
    // Runs after native code completes
  }
}

window.ExtensionPreprocessingJS = new Action();
Ensure NSExtensionJavaScriptPreprocessingFile: "index" in Info.plist.

Photo editing extensions

Photo editing extensions appear in the Photos app editing flow.

Extension point

PropertyValue
Typephoto-editing
Extension Pointcom.apple.photo-editing
FrameworksPhotos, PhotosUI
npx create-target photo-editing
Implement PHContentEditingController protocol to provide editing UI.

Spotlight extensions

Spotlight extensions index your app’s content for system search.

Extension point

PropertyValue
Typespotlight
Extension Pointcom.apple.spotlight.import
FrameworksNone
Embedded SwiftYes
npx create-target spotlight
Populate the search index from the extension:
import CoreSpotlight

let attributes = CSSearchableItemAttributeSet(itemContentType: kUTTypeText as String)
attributes.title = "My Item"
attributes.contentDescription = "Description"

let item = CSSearchableItem(
  uniqueIdentifier: "com.myapp.item.1",
  domainIdentifier: "items",
  attributeSet: attributes
)

CSSearchableIndex.default().indexSearchableItems([item])

CoreSpotlight delegate

The CoreSpotlight delegate extension handles search result taps.

Extension point

PropertyValue
Typespotlight-delegate
Extension Pointcom.apple.spotlight.index
FrameworksCoreSpotlight
npx create-target spotlight-delegate

Siri intent extensions

Intent extensions handle Siri requests and shortcuts.

Intent extension

PropertyValue
Typeintent
Extension Pointcom.apple.intents-service
FrameworksIntents
Embedded SwiftYes
npx create-target intent

Intent UI extension

PropertyValue
Typeintent-ui
Extension Pointcom.apple.intents-ui-service
FrameworksIntentsUI
Embedded SwiftYes
npx create-target intent-ui

App Intent extension (iOS 16+)

PropertyValue
Typeapp-intent
Extension Pointcom.apple.appintents-extension
Product Typecom.apple.product-type.extensionkit-extension
FrameworksAppIntents
npx create-target app-intent
Modern App Intents use the AppIntents framework instead of the legacy Intents framework.

Quick Look extensions

Quick Look extensions provide custom previews and thumbnails.

Thumbnail extension

PropertyValue
Typequicklook-thumbnail
Extension Pointcom.apple.quicklook.thumbnail
FrameworksQuickLookThumbnailing
Embedded SwiftYes
npx create-target quicklook-thumbnail

Preview extension

PropertyValue
Typequicklook-preview
Extension Pointcom.apple.quicklook.preview
FrameworksQuickLook
Embedded SwiftYes
npx create-target quicklook-preview

File Provider extensions

File Provider extensions integrate with the Files app.

File Provider

PropertyValue
Typefile-provider
Extension Pointcom.apple.fileprovider-nonui
FrameworksUniformTypeIdentifiers
App GroupsEnabled by default
npx create-target file-provider

File Provider UI

PropertyValue
Typefile-provider-ui
Extension Pointcom.apple.fileprovider-actionsui
FrameworksFileProviderUI
npx create-target file-provider-ui

Other extensions

Keyboard extension

PropertyValue
Typekeyboard
Extension Pointcom.apple.keyboard-service
App GroupsEnabled by default
Embedded SwiftYes
npx create-target keyboard
Custom keyboards replace the system keyboard.

Credentials Provider

PropertyValue
Typecredentials-provider
Extension Pointcom.apple.authentication-services-credential-provider-ui
npx create-target credentials-provider
Password manager integration with AutoFill.

Matter extension

PropertyValue
Typematter
Extension Pointcom.apple.matter.support.extension.device-setup
Embedded SwiftYes
npx create-target matter
Smart home device setup for Matter accessories.

Background download

PropertyValue
Typebg-download
Extension Pointcom.apple.background-asset-downloader-extension
App GroupsEnabled by default
Embedded SwiftYes
npx create-target bg-download
Background asset downloads on managed devices.

Learn more

Share extensions

Build share extensions

Complete target list

All 40+ target types

Target config

Configure target settings

Entitlements

Configure extension entitlements

Build docs developers (and LLMs) love