Join the waitlistDownload

Bundle ID and App ID. What they are and how to get them right the first time

You choose an app's identifier once. After the first build reaches App Store Connect, it can't be changed.

In short

A bundle ID is a string like com.brand.app that Apple uses to tell your app apart from every other app. It may contain only Latin letters, digits, hyphens and periods, it's case-insensitive, and it can't be changed once you upload your first build to App Store Connect (Apple's documentation, checked October 16, 2026).

What a bundle ID and an App ID are

The bundle ID lives inside the app, in the CFBundleIdentifier key. The system uses it to recognize the app, apply its preferences and validate its signature, and no two apps can share one.

An App ID is a developer account record in two parts joined by a period, a Team ID from Apple and your bundle ID, for example ABCDE12345.com.mybrand.notes. It carries the capabilities the app may use, such as in-app purchases or iCloud. The SKU is something else, an internal App Store Connect code with its own rules.

Where the bundle ID lives in Xcode and App Store Connect

The bundle ID appears in three places and has to match in all of them.

  • Xcode. App target › Signing & Capabilities › Signing › Bundle Identifier field. A new project builds it from the Organization Identifier and app name, like com.example.mycompany.HelloWorld.
  • Developer account. Certificates, Identifiers & Profiles › Identifiers › +
  • App Store Connect. In Apps › + › New App you pick it from the registered IDs, and later it shows in App Information.

Apple's rules for bundle IDs

RuleWhat Apple says
CharactersLatin A–Z and a–z, digits 0–9, hyphens and periods
Caseignored, com.Brand.App and com.brand.app are the same ID
Formatusually a reverse domain, for example com.mybrand.notes
When it locksafter the first build is uploaded to App Store Connect
Explicit App IDrequired for the App Store, can't be deleted after a build upload
Platformssince Xcode 11.4 one App ID covers iOS, macOS, tvOS and watchOS
SKUletters, digits, hyphens, periods and underscores, but no hyphen, period or underscore first, locks with the record
Buildidentified by bundle ID, version and build number

Per Apple's documentation and App Store Connect Help, checked October 16, 2026.

A bundle ID's path and the point where it locksFive bundle ID steps per Apple's documentation as of October 16, 2026. 1. Pick a reverse-domain string, using A–Z, a–z, 0–9, hyphens and periods, case-insensitive. 2. Register an explicit App ID in Certificates, Identifiers & Profiles, which the App Store requires. 3. Enter the same bundle ID in Xcode under Signing & Capabilities, Bundle Identifier field. 4. Create the record in App Store Connect with New App, after which the SKU can't change. 5. Upload the first build from Xcode, after which the bundle ID can't change and the explicit App ID can't be deleted.A bundle ID's path and the point where it locksFive steps from picking the string to the first build, per Apple's documentation, October 16, 20261Pick the stringreverse domainA–Z, a–z, 0–9, hyphen and period,case-insensitive2Register the App IDCertificates, Identifiers & ProfilesExplicit type, required for the AppStore3Enter it in XcodeSigning & CapabilitiesBundle Identifier field4Create the recordApp Store Connect › New Appthe SKU locks here5Upload a buildXcode › Distribute Appthe bundle ID locks here
The two highlighted steps can't be undone. The SKU locks when the record is created, the bundle ID with the first build. Per Apple's documentation and App Store Connect Help, October 16, 2026.

How to set up a bundle ID

  1. Reverse a domain you own, mybrand.com becomes com.mybrand, and add the app name in lowercase, com.mybrand.notes.
  2. In Certificates, Identifiers & Profiles, press + next to Identifiers, choose App IDs and the App type.
  3. Enter a description, choose Explicit App ID, type the bundle ID and tick capabilities, in-app purchases are on by default. Press Continue, then Register.
  4. In Xcode, enter the same bundle ID on the Signing & Capabilities tab of the app target.
  5. In App Store Connect, create the record with New App, pick this bundle ID and set the SKU.
  6. Upload the first build. The bundle ID now belongs to the record.

Common mistakes

  • Keeping the sample ID. com.example or someone else's domain stays with the app forever. Use your own brand's domain.
  • Underscores or spaces. They're fine in an SKU and won't pass in a bundle ID.
  • Different IDs in Xcode and App Store Connect. The project's bundle ID must match the record, or the build won't attach.
  • A wildcard for the App Store. An asterisk at the end, as in com.mybrand.*, covers a set of apps, but the App Store and some capabilities need an explicit App ID.
  • Planning to rename later. The App Store name can change with a new version, the bundle ID can't. A new ID means a new record without the old ratings.

Bundle ID, SKU and the app's Apple ID

An app record holds three identifiers that lock at different times. The bundle ID locks with the first build, the SKU as soon as the record exists. The app's Apple ID is a number App Store Connect assigns itself, it sits in the App Store page address and never changes. The road from record to review is in how to publish an app on the App Store.

Appto creates a new bundle ID and App Store Connect record for every new app, asks for a yes before writing there and never reuses old or someone else's records. More on the App Store Connect page.

Questions

Can I change a bundle ID?

Only until the first build is uploaded to App Store Connect. After that it's fixed, and the explicit App ID can't be deleted (Apple's documentation as of October 16, 2026).

Bundle ID vs App ID, what's the difference?

The bundle ID is a string inside the app, such as com.mybrand.notes. The App ID is a developer account record of your Team ID plus that string, holding the allowed capabilities.

Which characters can a bundle ID use?

Latin letters A–Z and a–z, digits 0–9, hyphens and periods, no underscores or spaces. Case is ignored (Apple's documentation as of October 16, 2026).

Where is the bundle ID in Xcode?

Select the app target, open Signing & Capabilities, expand Signing and look at the Bundle Identifier field.

Do I need my own domain for a bundle ID?

Apple suggests your organization's domain so the ID won't clash with anyone else's. Skip com.example and other brands, the string stays with the app for good.

Build your own app in Appto

Appto checks the niche on fresh App Store data, designs the screens, writes the code, builds the App Store page and submits to Apple from your account or shows you what to press in App Store Connect. Runs on your own Claude Code or Codex.

Download for Mac