App Execution

Control app launch, execution, and termination.


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 file to manage its execution.



property list key NSPrincipalClass

The name of the bundle’s main executable class.

Name: Principal class
property list key CLKComplicationPrincipalClass

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

Name: ClockKit Complication - Principal Class
property list key CFBundleExecutable

The name of the bundle’s executable file.

Name: Executable file
property list key LSEnvironment

Environment variables to set before launching the app.

Name: Environment variables

Launch Conditions

property list key UIRequiredDeviceCapabilities

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

Name: Required device capabilities
property list key LSMultipleInstancesProhibited

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

Name: Application prohibits multiple instances
property list key LSExecutableArchitectures

The architectures that the app supports.

Name: Executable architectures
property list key LSRequiresNativeExecution

A Boolean value indicating whether to launch the app using the sub-binary for the current architecture.

Name: Application requires native environment
property list key WKRunsIndependentlyOfCompanionApp

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

Name: App can run independently of companion iPhone app
property list key WKWatchOnly

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

Name: App is only available as a standalone watchOS app
property list key PUICAutoLaunchAudioOptOut

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

Name: Opt out of Auto-launch Audio App (Watch)
property list key CLKComplicationSupportedFamilies

The complication families for which the app can provide data.

Name: ClockKit Complication - Supported Families

Extensions and Services

property list key NSExtension

The properties of an app extension.

property list key NSServices

The services provided by an app.

Name: Services
property list key WKExtensionDelegateClassName

The name of your watchOS app’s extension delegate.

property list key UIApplicationShortcutWidget

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

Name: Home Screen Widget

Background Execution

property list key UIBackgroundModes

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

Name: Required background modes
property list key WKBackgroundModes

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

Name: Required background modes (Watch)
property list key BGTaskSchedulerPermittedIdentifiers

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

Name: Permitted background task scheduler identifiers
property list key LSBackgroundOnly

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

Name: Application is background only

Plug-in Support

property list key NSDockTilePlugIn

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

Name: Dock Tile plugin path

Plug-in Configuration

property list key CFPlugInDynamicRegisterFunction

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

Name: Plug-in dynamic registration function name
property list key CFPlugInDynamicRegistration

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

Name: Plug-in should be registered dynamically
property list key CFPlugInFactories

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

Name: Plug-in factory interfaces
property list key CFPlugInTypes

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

Name: Plug-in types
property list key CFPlugInUnloadFunction

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

Name: Plug-in unload function name


property list key LSGetAppDiedEvents

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

Name: Application should get App Died events
property list key NSSupportsSuddenTermination

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

Name: Application can be killed immediately after launch
property list key UIApplicationExitsOnSuspend

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

Name: Application does not run in background

See Also

Core Settings

Bundle Configuration

Define basic characteristics of a bundle, like its name, type, and version.

User Interface

Configure an app's scenes, storyboards, icons, fonts, and other user interface elements.