A bundle ID uniquely identifies a single app throughout the system. The bundle ID string must be a uniform type identifier (UTI) that contains 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.
A bundle ID is used during the development process to provision devices and by the operating system when the app is distributed to users.
During the development process, you use an app’s bundle ID in several places to identify the app.
In the Xcode project, the bundle ID is stored in the information property list file (Info.plist). This file is later copied into your app’s bundle when you build the project.
In App Store Connect, you enter the bundle ID to identify your app. After your first build is uploaded to App Store Connect, you can’t change your bundle ID or delete the associated explicit App ID.
In your developer account, Xcode creates an App ID that matches the app’s bundle ID.
In iCloud, the container IDs you specify in your Xcode project are based on the bundle IDs of one or more apps.
Once your app is installed, the preferences 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.
Important: A macOS app can’t share the same bundle ID with other types of apps, such as iOS and tvOS apps.