Property List Key

CFBundleIdentifier

A unique identifier for a bundle.

Required.

Details

Name
Bundle identifier
Type
string

Discussion

A bundle ID uniquely identifies a single app throughout the system. The bundle ID string must contain only alphanumeric characters (A-Z, a-z, 0-9), hyphen (-), and period (.). The string should be in reverse-DNS format. Bundle IDs are case sensitive.

The operating system uses the bundle ID to identify the app for which a given preference applies. Similarly, Launch Services uses the bundle ID to locate an app capable of opening a particular file, using the first app it finds with the given identifier. The bundle ID is also used to validate an app’s signature.

macOS Apps Considerations

A macOS app can’t share the same bundle ID with other types of apps, such as iOS and tvOS apps.

macOS Versions of iPad Apps Considerations

For macOS versions of an iPad app, the macOS bundle ID is derived from the iOS bundle ID. To learn more, see About the Mac version of an iPad app bundle ID.

tvOS Apps Considerations

For tvOS apps that share the App Store Connect record of an iOS app, the tvOS app must have the same bundle ID as the iOS app.

watchOS Apps Considerations

For watchOS apps, the embedded WatchKit app and WatchKit extension targets must have the same bundle ID prefix as the iOS app. The WatchKit app must have the format [Bundle ID].watchkitapp, and the WatchKit extension must have the format [Bundle ID].watchkitextension.

If you change the iOS app's bundle ID, also change the WatchKit app's WKCompanionAppBundleIdentifier key and the WatchKit extension's WKAppBundleIdentifier key to match.

See Also

Identification

property list key WKAppBundleIdentifier

The bundle ID of the watchOS app.

property list key WKCompanionAppBundleIdentifier

The bundle ID of the watchOS app’s companion iOS app.