<!--
{
  "documentType" : "article",
  "framework" : "BundleResources",
  "identifier" : "/documentation/BundleResources/app-execution",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "App execution"
}
-->

# App execution

Control app launch, execution, and termination.

## Discussion

Your app interacts with the system during normal execution by calling system APIs. However, you need to communicate information about how to execute your app before you have access to these API calls. For example, you may need to specify under what conditions your app can launch, the environment that it should launch into, and what should happen when it terminates. You add keys to your app’s [`Information Property List`](/documentation/BundleResources/Information-Property-List) file to manage its execution.

## Topics

### Launch

[`NSPrincipalClass`](/documentation/BundleResources/Information-Property-List/NSPrincipalClass)

The name of the bundle’s main executable class.

[`CLKComplicationPrincipalClass`](/documentation/BundleResources/Information-Property-List/CLKComplicationPrincipalClass)

The name of the class that implements the complication data source protocol.

[`CFBundleExecutable`](/documentation/BundleResources/Information-Property-List/CFBundleExecutable)

The name of the bundle’s executable file.

[`LSEnvironment`](/documentation/BundleResources/Information-Property-List/LSEnvironment)

Environment variables to set before launching the app.

[`UIApplicationShortcutItems`](/documentation/BundleResources/Information-Property-List/UIApplicationShortcutItems)

### Launch conditions

[`UIRequiredDeviceCapabilities`](/documentation/BundleResources/Information-Property-List/UIRequiredDeviceCapabilities)

The device-related features that your app requires to run.

[`LSMultipleInstancesProhibited`](/documentation/BundleResources/Information-Property-List/LSMultipleInstancesProhibited)

A Boolean value indicating whether more than one user can launch the app simultaneously.

[`LSArchitecturePriority`](/documentation/BundleResources/Information-Property-List/LSArchitecturePriority)

An array of the architectures that the app supports, arranged according to their preferred usage.

[`LSRequiresNativeExecution`](/documentation/BundleResources/Information-Property-List/LSRequiresNativeExecution)

A Boolean value that indicates whether to require the execution of the app’s native architecture when multiple architectures are available.

[`WKPrefersNetworkUponForeground`](/documentation/BundleResources/Information-Property-List/WKPrefersNetworkUponForeground)

A Boolean value that indicates whether an app requires network access on launch.

[`WKRunsIndependentlyOfCompanionApp`](/documentation/BundleResources/Information-Property-List/WKRunsIndependentlyOfCompanionApp)

A Boolean value indicating whether the user can install and run the watchOS app independently of its iOS companion app.

[`WKWatchOnly`](/documentation/BundleResources/Information-Property-List/WKWatchOnly)

A Boolean value indicating whether the app is a watch-only app.

[`PUICAutoLaunchAudioOptOut`](/documentation/BundleResources/Information-Property-List/PUICAutoLaunchAudioOptOut)

A Boolean value that indicates whether a watchOS app should opt out of automatically launching when its companion iOS app starts playing audio content.

[`CLKComplicationSupportedFamilies`](/documentation/BundleResources/Information-Property-List/CLKComplicationSupportedFamilies)

The complication families for which the app can provide data.

### Extensions and services

[`NSExtension`](/documentation/BundleResources/Information-Property-List/NSExtension)

The properties of an app extension.

[`NSServices`](/documentation/BundleResources/Information-Property-List/NSServices)

The services provided by an app.

[`WKExtensionDelegateClassName`](/documentation/BundleResources/Information-Property-List/WKExtensionDelegateClassName)

The name of your watchOS app’s extension delegate.

[`UIApplicationShortcutWidget`](/documentation/BundleResources/Information-Property-List/UIApplicationShortcutWidget)

The bundle ID of the widget that’s available as a Home screen quick action in apps that have more than one widget.

### App clips

[`NSAppClip`](/documentation/BundleResources/Information-Property-List/NSAppClip)

A collection of keys that an App Clip uses to get additional capabilities.

### Background execution

[`UIBackgroundModes`](/documentation/BundleResources/Information-Property-List/UIBackgroundModes)

Services provided by an app that require it to run in the background.

[`WKBackgroundModes`](/documentation/BundleResources/Information-Property-List/WKBackgroundModes)

The services a watchOS app provides that require it to continue running in the background.

[`BGTaskSchedulerPermittedIdentifiers`](/documentation/BundleResources/Information-Property-List/BGTaskSchedulerPermittedIdentifiers)

An array of strings containing developer-specified task identifiers in reverse URL notation.

[`LSBackgroundOnly`](/documentation/BundleResources/Information-Property-List/LSBackgroundOnly)

A Boolean value indicating whether the app runs only in the background.

### Endpoint security

[`NSEndpointSecurityEarlyBoot`](/documentation/BundleResources/Information-Property-List/NSEndpointSecurityEarlyBoot)

[`NSEndpointSecurityRebootRequired`](/documentation/BundleResources/Information-Property-List/NSEndpointSecurityRebootRequired)

### Plug-in support

[`NSDockTilePlugIn`](/documentation/BundleResources/Information-Property-List/NSDockTilePlugIn)

The name of the app’s plug-in bundle.

### Plug-in configuration

[`CFPlugInDynamicRegisterFunction`](/documentation/BundleResources/Information-Property-List/CFPlugInDynamicRegisterFunction)

The function to use when dynamically registering a plug-in.

[`CFPlugInDynamicRegistration`](/documentation/BundleResources/Information-Property-List/CFPlugInDynamicRegistration)

A Boolean value indicating whether the host loads this plug-in.

[`CFPlugInFactories`](/documentation/BundleResources/Information-Property-List/CFPlugInFactories)

The interfaces supported by the plug-in for static registration.

[`CFPlugInTypes`](/documentation/BundleResources/Information-Property-List/CFPlugInTypes)

One or more groups of interfaces supported by the plug-in for static registration.

[`CFPlugInUnloadFunction`](/documentation/BundleResources/Information-Property-List/CFPlugInUnloadFunction)

The name of the function to call to unload the plug-in code from memory.

### Termination

[`LSGetAppDiedEvents`](/documentation/BundleResources/Information-Property-List/LSGetAppDiedEvents)

A Boolean value indicating whether the app is notified when a child process dies.

[`NSSupportsSuddenTermination`](/documentation/BundleResources/Information-Property-List/NSSupportsSuddenTermination)

A Boolean value indicating whether the system may terminate the app to log out or shut down more quickly.

[`UIApplicationExitsOnSuspend`](/documentation/BundleResources/Information-Property-List/UIApplicationExitsOnSuspend)

A Boolean value indicating whether the app terminates, rather than moves to the background, when the app quits.

### Logging

[`OSLogPreferences`](/documentation/BundleResources/Information-Property-List/OSLogPreferences)

A dictionary that defines the logging configuration profile for the app.



---

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)