<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: 16.0.0 -",
    "macOS: 13.0.0 -",
    "tvOS: 16.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 9.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ExtensionKit",
  "identifier" : "/documentation/ExtensionKit/PrimitiveAppExtensionScene",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "ExtensionKit"
    ],
    "preciseIdentifier" : "s:12ExtensionKit012PrimitiveAppA5SceneV"
  },
  "title" : "PrimitiveAppExtensionScene"
}
-->

# PrimitiveAppExtensionScene

A type you use to deliver the contents of your app-extension-based UI.

```
@MainActor @preconcurrency struct PrimitiveAppExtensionScene
```

## Overview

When defining an [`AppExtensionScene`](/documentation/ExtensionKit/AppExtensionScene) type, provide a `PrimitiveAppExtensionScene`
structure as the body of that type. This type facilitates the delivery of the scene’s
UI views back to the host app for incorporation into the host view controller.
When constructing this type, specify one of the defined scene identifiers that
the host app supports.

For more information about creating scenes for your app extension, see
<doc://com.apple.documentation/documentation/ExtensionKit/including-extension-based-ui-in-your-interface>.

## Topics

### Creating a primitive extension scene

[`init<Content>(id: String, content: () -> Content, onConnection: (NSXPCConnection) -> Bool)`](/documentation/ExtensionKit/PrimitiveAppExtensionScene/init(id:content:onConnection:))

Initializes the primitive app extension scene with the specified ID and
closure for the content.

### Defining the scene contents

[`var body: Never`](/documentation/ExtensionKit/PrimitiveAppExtensionScene/body)

The scene’s user interface.

### Describing the scene

[`var debugDescription: String`](/documentation/ExtensionKit/PrimitiveAppExtensionScene/debugDescription)

A string that provides information about the scene.

### Default Implementations

[CustomDebugStringConvertible Implementations](/documentation/ExtensionKit/PrimitiveAppExtensionScene/CustomDebugStringConvertible-Implementations)

## Relationships

### Conforms To

[`Copyable`](/documentation/Swift/Copyable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Escapable`](/documentation/Swift/Escapable)

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`AppExtensionScene`](/documentation/ExtensionKit/AppExtensionScene)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)