---
id: "apple_bundle_id"
kind: "datatype"
status: "draft"
is_pii: false
categories: ["software"]
langs: ["common"]
quality: 85
url: "https://registry.apicrafter.io/datatype/apple_bundle_id"
---

# Apple bundle ID (`apple_bundle_id`)

> **Draft.** Draft records have not been reviewed yet and may be incomplete or wrong; do not treat them as authoritative for legal or compliance decisions.

Identifier of an app or other bundle on Apple platforms (iOS, iPadOS, macOS, tvOS, visionOS and watchOS), stored as CFBundleIdentifier in Info.plist. Apple allows only the letters A-Z and a-z, the digits 0-9, hyphens and periods, and compares bundle IDs without regard to case. Developers usually write it in reverse-DNS form (com.example.app). The system uses it to find apps and their preferences, it is part of the code signature and of the App ID (Team ID, a period and the bundle ID), and it cannot change after an upload to App Store Connect. The regexp also requires at least one period, as in reverse-DNS names.

- Personal data (PII): no
- Categories: Software development (software)
- Countries: global
- Languages: Common to most languages (common)
- Classification: identifier

## Detection

Regular expression (Python `re`):

```
^[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)+$
```

## Examples

- `com.example.apple-samplecode.ProfileExplainer` — Bundle ID of the sample app in Apple TN3125
- `com.example.apple-samplecode.AppWithTool` — Bundle ID of the sample app in Apple TN3127
- `com.example.my_app` (invalid example) — Underscore is not allowed

## Mappings

- wikidata: `P7429`

## Sources

- doc: <https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleidentifier>
- wikidata: <https://www.wikidata.org/wiki/Property:P7429>

## Quality

Score 85/100. Missing: translation, detector coverage.

JSON: <https://registry.apicrafter.io/api/v1/datatypes/apple_bundle_id.json> · Edit: <https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/software/apple_bundle_id.yaml>
