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.

  1. What is an app extension, how is it launched, and what limits do extensions run under? 19.1.1 · L3
    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.

  1. How do app groups, shared containers and keychain access groups let an app and its extensions share data, and what goes wrong? 19.1.2 · L3
    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