Bundle ID / package name

The permanent reverse-domain string (com.acme.notebook) that identifies your app to the OS and the store. Choose once, keep forever.

the reverse-domain name thingcom.something.myapppackage namebundle identifierapp idapplicationIdbundle indentifierthe thing I can never change after launch

See it

Live demo coming soon

What it is

Your app's real name, as far as the OS and the stores are concerned, is a reverse-domain string like com.acme.notebook. iOS calls it the bundle ID; Android calls it the applicationId (which is allowed to differ from the Java package the code lives in, and usually should not). Everything hangs off it: push certificates, keychain and app group access, universal link association files, provisioning profiles, IAP product namespaces, and the store record itself. On Google Play the identifier is literally in the listing URL; on the App Store the URL hangs off Apple's numeric app ID instead, but the bundle ID is still the key that build uploads have to match.

Pick it before you write a line of code, and pick it as if you will own it for a decade. Use a domain you actually control, all lowercase, no hyphens or underscores, no version numbers, and no product name you expect to rebrand. The standard trick is a suffix per environment (com.acme.notebook.dev, com.acme.notebook.staging) so a tester can keep the production app and a debug build installed side by side without one overwriting the other.

The unfixable mistake: once a build is published, the identifier is permanent. Changing it does not rename your app, it creates a second, unrelated app with zero reviews, zero ratings, zero install history, and no path to update the people who have the old one. Your display name, your icon, and your whole brand can change freely. This string cannot.

Ask AI for it

Define the bundle identifier scheme for my app before first submission. Use a reverse-domain string based on a domain I own, all lowercase, no hyphens, no product name likely to be rebranded, and keep it identical across iOS and Android. Set it as the iOS bundle ID and the Android applicationId, add per-flavor suffixes '.dev' and '.staging' so debug builds install alongside production, and derive the display name and app icon per flavor so testers can tell them apart. Confirm the same identifier is used in the provisioning profile, push configuration, universal link association file, and IAP product IDs.

You might have meant

code signing and provisioningstore submissionuniversal links android app linksdeep linkapp store connect play console