What is a bundle identifier?
A bundle identifier, often called a bundle ID, is the unique string that names an iOS app across Apple's systems. It is written in reverse-domain format, such as com.example.myapp, and is set when the app is first created. Apple uses it everywhere the app needs to be identified: signing, services, push notifications, and the App Store record.
How a bundle identifier works
The reverse-domain format exists to keep identifiers unique without a central registry. By basing the ID on a domain you control, like com.yourcompany.appname, you avoid colliding with other developers' apps. The string is the app's permanent name to Apple. When you create an App ID in your developer account, you register this bundle identifier and the capabilities the app will use. From then on, the bundle ID links the app to its signing certificate, its provisioning profile, its push notification setup, its in-app purchases, and its listing in App Store Connect. Everything that has to know which app it is dealing with refers to the bundle ID.
Why it must be chosen carefully
Because so much hangs off the bundle identifier, it is effectively permanent once an app ships. It is tied to the App Store record, the signing setup, and any backend services configured for that ID, so changing it after release would break those connections and is not practically supported. This is different from the app's display name, which you can change freely. The bundle ID is the stable, behind-the-scenes identity; the display name is the public label. It is worth picking the bundle ID deliberately at the start.
Bundle identifiers and code signing
The bundle ID sits at the center of the signing chain. The App ID registers it, the provisioning profile references it, and the certificate signs the app under it. If the bundle ID in the app does not match the one in the App ID and provisioning profile, signing fails. This is why bundle ID mismatches are a common build error.
Bundle identifiers in AppFlight
AppFlight sets up the bundle identifier and the surrounding signing and provisioning as part of its path from a prompt to the App Store, alongside building native Swift and submitting for review. Handling these identifiers automatically removes a common source of setup errors. The app still goes through Apple's review, so a submitted app is not the same as an approved one.
FAQ
What does a bundle identifier look like?
It uses reverse-domain notation, like com.yourcompany.appname. It is lowercase by convention, unique to your app, and based on a domain you control to avoid collisions with other developers.
Can I change a bundle identifier later?
Not easily once an app is on the App Store. The bundle ID is tied to the app record, its signing, and its services, so it is effectively permanent after release. Choose it carefully up front.
Is the bundle identifier the same as the App ID?
They are closely related but not identical. The bundle ID names the app. The App ID is the entry in your Apple Developer account that registers that bundle ID and its capabilities for signing and services.