Identifiers

App ID vs Bundle ID

ConceptDescription
Bundle IDThe app’s unique identifier (e.g. com.example.myapp), configured in Xcode
App IDThe identifier record registered in the developer portal, matching the Bundle ID
CapabilitiesServices enabled on the App ID: push, universal links, Sign in with Apple, etc.

The App ID is like an app’s ID card; the Bundle ID is its ID number; capabilities are the “services” attached to that card. Profiles reference the App ID and inherit its capabilities.

Creating an App ID

  1. Go to Certificates, Identifiers & Profiles → Identifiers → ”+” → choose App IDs.
  2. Select App type (not App Clips or others).
  3. Enter a description and the Bundle ID (reverse DNS, e.g. com.example.myapp).
  4. Check the capabilities you need: Push Notifications, Associated Domains, Sign in with Apple, App Groups, Background Modes, etc.
  5. Save to create the App ID.

Wildcard vs Explicit

TypeExampleUse caseCapability support
Explicit App IDcom.example.myappMost production appsFull support
Wildcard App IDcom.example.*Some utility/batch appsRestricted (some capabilities unsupported)

Capabilities Quick Reference

CapabilityPurposeNotes
Push NotificationsRemote pushAlso configure APNs key / certificate
Associated DomainsUniversal links, web credentialsRequires hosted apple-app-site-association
Sign in with AppleApple loginApp must show “Continue with Apple” button
App GroupsShare data with Extensions/WidgetsShared containers across targets
Background ModesBackground tasksEnable only what is needed to avoid review scrutiny
In-App PurchaseIAPModern versions configured via Xcode

Changes & Maintenance

  • After adding capabilities, you must regenerate the provisioning profile (profiles snapshot the App ID’s capabilities at creation time).
  • Once a Bundle ID is used for release, it cannot be deleted or reused; confirm naming before creation.
  • Changing capabilities can affect already-installed versions; be careful in production.

Self-Check List

  • Explicit App ID created (reverse DNS, no typos)
  • All required capabilities enabled
  • Bundle ID matches the Xcode project exactly
  • Profiles regenerated after adding capabilities

FAQ

  • Typo in the Bundle ID? If unused, delete and recreate; if already in use (including on test devices), you must switch to a new ID.
  • Capabilities enabled but signing fails? Regenerate the profile; also enable the same capability in the Xcode target.
  • Cannot find the App ID? Check you are in the correct Team; confirm it wasn’t created as a wildcard by mistake.