19.1 · Extension processes, limits, and sharing data with the app
An app extension is code that another app or the system launches in its own process, with its own budget and no access to your app’s memory. Everything that follows (widgets, share sheets, keyboards) depends on that one fact.
Mental model. An extension is a different program that happens to ship inside your app. It starts cold, has hard limits, and shares only what you deliberately put in common storage.
A different process
What an appex is, who launches it, and what limits it.
- What is an app extension, how is it launched, and what limits do extensions run under?
An app extension is a separate executable, an .appex bundle inside your app, that the system or another app (the host) starts to provide a feature at an…
Shared storage
App groups, keychain access groups and safe sharing.
- How do app groups, shared containers and keychain access groups let an app and its extensions share data, and what goes wrong?
Because an extension is a separate process with its own sandbox, you share through capabilities that create common storage. An App Group (a capability with an…
More in Extensions, widgets & intents
- 19.2 · Notification Service and Notification Content extensions
- 19.3 · Share, Action, keyboards, message filtering, web extensions and network extensions
- 19.4 · WidgetKit timelines, families, refresh budgets, interactivity and controls
- 19.5 · App Intents, Shortcuts, Siri and Spotlight
- 19.6 · The watch app model, Watch Connectivity, and complications
- 19.7 · Top Shelf on tvOS, and treating extensions as a product API
- 19.8 · Timeline fallbacks, testing, bundles and rendering modes
- 19.9 · Dependencies, entities and queries, errors, and build-time metadata
- 19.10 · Info.plist, bundle ids, app group containers and shared payloads