A Bundle ID is the reverse-DNS string that uniquely identifies a single app (or extension, or watch companion app) on Apple's platforms. It lives in CFBundleIdentifier inside the .app bundle's Info.plist. Once a Bundle ID is taken on the App Store, it cannot be reused by anyone else.
How it relates to App ID and Team ID
- Your Bundle ID is
com.example.app. - Your registered App ID is
TEAMID.com.example.app. - Your provisioning profile binds the App ID to one or more signing certificates and (for Development and Ad Hoc) a device list.
- Your build is then signed against that profile, with the matching
CFBundleIdentifierbaked into the .app at compile time.
Subdomain conventions
App extensions, widgets, watch apps, and Notification Service Extensions use sub-bundles whose Bundle ID is the parent's plus a suffix:
- App:
com.example.app - Watch app:
com.example.app.watchkitapp - Today widget:
com.example.app.TodayExtension - Notification service:
com.example.app.NotificationService