Skip to main content

Bundle IDs

Manage bundle IDs and app capabilities
Create, update, and manage bundle identifiers and their associated capabilities.

Overview

Bundle IDs uniquely identify your apps on Apple platforms. The bundle-ids command manages bundle identifiers and their capabilities in App Store Connect.

List Bundle IDs

List all bundle IDs in your account:

Pagination Options

  • --limit - Results per page (1-200)
  • --next - Fetch next page using a links.next URL
  • --paginate - Automatically fetch all pages

Get Bundle ID Details

Retrieve a specific bundle ID by resource ID:
Note: The --id parameter expects the App Store Connect resource ID, not the bundle identifier string (e.g., “com.example.app”). Use list to find the resource ID.

Create Bundle ID

Register a new bundle identifier:

Required Parameters

  • --identifier - Bundle ID string (e.g., com.example.app)
  • --name - Display name for the bundle ID

Optional Parameters

  • --platform - Platform: IOS (default), MAC_OS, UNIVERSAL

Bundle ID Format

Bundle IDs must follow these rules:
  • Use reverse DNS notation: com.company.app
  • Contain only alphanumeric characters (A-Z, a-z, 0-9), hyphens (-), and periods (.)
  • Cannot start or end with a period
  • Cannot contain consecutive periods
Valid examples:
  • com.example.myapp
  • com.example.my-app
  • com.example.myapp.watchkit
Invalid examples:
  • .com.example.app (starts with period)
  • com..example.app (consecutive periods)
  • com.example.app! (special characters)

Wildcard Bundle IDs

Create wildcard bundle IDs for app groups:
Wildcard limitations:
  • Can only use * as the last component
  • Cannot use certain capabilities (Push Notifications, In-App Purchase, etc.)
  • Useful for app extensions and development

Update Bundle ID

Update a bundle ID’s display name:
Note: You cannot change the bundle identifier string itself. Only the display name can be updated.

Delete Bundle ID

Delete a bundle identifier:
Warning: Deleting a bundle ID:
  • Cannot be undone
  • Invalidates all associated provisioning profiles
  • Removes all capability configurations
  • Should only be done if the bundle ID is no longer in use

Bundle ID Relationships

Get Associated App

Find the app using this bundle ID:

List Associated Profiles

List all provisioning profiles for a bundle ID:

Capabilities Management

Manage app capabilities for a bundle ID.

List Capabilities

List all capabilities for a bundle ID:

Add Capability

Enable a capability for a bundle ID:

Common Capability Types

No settings required:
  • PUSH_NOTIFICATIONS - Push notifications
  • IN_APP_PURCHASE - In-App Purchase
  • GAME_CENTER - Game Center
  • WALLET - Wallet (Apple Pay)
  • SIRIKIT - SiriKit
  • PERSONAL_VPN - Personal VPN
  • NETWORK_EXTENSIONS - Network Extensions
  • HOTSPOT - Hotspot Configuration
  • MULTIPATH - Multipath networking
  • NFC_TAG_READING - NFC tag reading
Settings required:
  • ICLOUD - iCloud (CloudKit/Documents)
  • APP_GROUPS - App Groups
  • ASSOCIATED_DOMAINS - Associated Domains
  • DATA_PROTECTION - Data Protection
  • HEALTHKIT - HealthKit
  • HOMEKIT - HomeKit
  • WIRELESS_ACCESSORY_CONFIGURATION - Wireless Accessory

iCloud Capability

App Groups Capability

Update Capability

Modify capability settings:

Remove Capability

Disable a capability:
Note: Removing capabilities may cause provisioning profiles to become invalid. Regenerate profiles after capability changes.

Complete Example Workflows

Create App with Capabilities

App Extensions

Create bundle IDs for app extensions:

App Groups Setup

Enable app group sharing between main app and extensions:

HealthKit and HomeKit

Platform-Specific Considerations

iOS / tvOS

Most capabilities available. Use --platform IOS (default).

macOS

Some capabilities differ for macOS:
macOS-specific capabilities:
  • SANDBOX - App Sandbox
  • SYSTEM_EXTENSION_INSTALL - System Extensions
  • USER_MANAGEMENT - User Management

Universal (Mac Catalyst)

For Mac Catalyst apps that run on both iOS and macOS:

Troubleshooting

Bundle ID Already Exists

Solution:

Invalid Bundle Identifier Format

Ensure identifier:
  • Uses reverse DNS notation
  • Contains only alphanumeric, hyphens, periods
  • Doesn’t start/end with periods
  • No consecutive periods

Capability Settings Invalid

JSON settings must be properly formatted:
Validate JSON:

Provisioning Profiles Invalid After Capability Change

After adding or removing capabilities, regenerate profiles: