App Bundle ID — co to je, identifikátor aplikace a registrace

Autor: IT Sectr Publikováno: 2026-04-17 Doba čtení: 8 min

App Bundle ID — je jedinečný identifikátor aplikace používaný v ekosystémech Apple a Google pro registraci, podepisování a distribuci softwarového produktu. Každá aplikace získá svůj Bundle ID při vytvoření projektu a tento identifikátor zůstává nezměněn po celý životní cyklus. Podle Apple Developer Documentation se Bundle ID používá k propojení služeb, certifikátů a profilů pro podepisování.

Hlavní body

  • App Bundle ID — globální identifikátor, jedinečný pro každou aplikaci v obchodě
  • Formát založený na reverse domain notation: com.company.appname
  • Registrace se provádí v App Store Connect a Google Play Console
  • Změna Bundle ID po publikaci není možná bez vytvoření nové aplikace
  • Propojení služeb (Push, CloudKit, Firebase) se provádí přes Bundle ID

Co je App Bundle ID

Bundle Identifier — je řetězec, který jednoznačně identifikuje aplikaci v operačním systému a obchodě s aplikacemi. V iOS a macOS se nazývá Bundle ID, v Androidu — Package Name, ačkoli funkčně oba plní stejnou roli: zajišťují jedinečnost aplikace na zařízení a v obchodě.

Účel Bundle ID

Operační systém používá Bundle ID k rozlišení aplikací na zařízení. Dvě aplikace se stejným identifikátorem nemohou být nainstalovány současně — systém je vnímá jako stejný produkt. Obchody s aplikacemi také kontrolují jedinečnost Bundle ID při publikaci.

Historie a standardy pojmenování

Apple zavedl Bundle ID s vydáním iOS SDK v roce 2008. Formát reverse domain notation byl převzat z Javy (package naming convention), kde se používá k prevenci konfliktů názvů tříd. Google převzal tuto praxi pro Android, což zajistilo jednotnost v obou mobilních ekosystémech.

PlatformaNázev polePříklad
iOS/macOSBundle Identifiercom.example.myapp
AndroidPackage Namecom.example.myapp
watchOSBundle Identifiercom.example.myapp.watchkit
tvOSBundle Identifiercom.example.myapp.tvos

Jak je formát Bundle ID strukturován

Bundle ID se skládá z několika segmentů oddělených tečkami. První část — identifikátor vývojáře nebo společnosti (com, org, net). Druhá — doména společnosti (example, google, apple). Následující segmenty upřesňují název aplikace a platformy.

Struktura Bundle ID

Typický Bundle ID vypadá jako com.company.appname. Apple doporučuje používat obrácený zápis názvu domény k zaručení globální jedinečnosti. Pokud společnost nemá doménu, je povoleno použití e-mailu: com.example.myapp nebo org.example.myapp.

  • Segment 1 — TLD v obráceném pořadí: com, org, io, net
  • Segment 2 — doména společnosti nebo vývojáře: google, apple, mycompany
  • Segment 3 — název aplikace: maps, mail, notes
  • Dodatečně — platforma nebo rozšíření: watchkit, todaywidget

Wildcard Bundle ID

Apple podporuje Wildcard Bundle ID — šablonu identifikátoru s hvězdičkou: com.example.*. Taková šablona umožňuje používat jeden App ID pro několik aplikací jedné společnosti. Wildcard ID je pohodlný ve fázi vývoje, ale není doporučen pro produkci, protože omezuje používání některých služeb Apple.

Omezení wildcard: Push Notifications, CloudKit, In-App Purchase a Game Center vyžadují přesný (explicit) Bundle ID. Při použití šablony com.example.* tyto služby nejsou dostupné. Pro produkční aplikace vždy používejte explicit Bundle ID k zajištění plné funkčnosti všech služeb Apple.

Kromě wildcard Apple podporuje prefixové identifikátory, které jsou přidělovány vývojářským týmům při registraci v Apple Developer Program. Prefix (Team ID) se automaticky přidává ke všem App ID a profilům pro podepisování. Dva různé Team ID mohou vytvořit stejný Bundle ID, ale na zařízení jsou považovány za různé aplikace.

Registrace Bundle ID v konzolách

Registrace Bundle ID — povinná fáze před publikací aplikace. V ekosystému Apple se registrace provádí na Apple Developer Portal v sekci Certificates, Identifiers & Profiles. V Google Play se Bundle ID uvádí při vytváření aplikace v konzoli vývojáře.

Registrace na Apple Developer Portal

Na portálu Apple Developer vyberte sekci Identifiers, klikněte na tlačítko Register a zadejte typ App ID. Zadejte přesný název Bundle ID a vyberte požadované capabilities: Push Notifications, CloudKit, Sign in with Apple. Po registraci se identifikátor stane dostupným pro vytváření profilů pro podepisování.

swift
// Kontrola Bundle ID v kódu aplikace
let bundleID = Bundle.main.bundleIdentifier
print("Aktuální Bundle ID: \(bundleID ?? "unknown")")

// Kontrola Bundle ID pro podmínky kompilace
if bundleID == "com.example.app.production" {
    // Produkční konfigurace
    Analytics.shared.configure(.production)
}

Registrace v Google Play Console

Google Play Console nevyžaduje předchozí registraci Bundle ID. Identifikátor se uvádí v souboru build.gradle modulu aplikace a musí být jedinečný v rámci celého Google Play. Po vytvoření aplikace je změna Package Name nemožná, proto vybírejte identifikátor pečlivě a zkontrolujte jeho jedinečnost vyhledáváním v Google Play. Google neuvolňuje identifikátory odstraněných aplikací, takže jednou obsazený Bundle ID zůstává nedostupný pro ostatní vývojáře.

Při registraci v App Store Connect je třeba uvést Bundle ID z existující sady registrovaných identifikátorů. Pokud identifikátor ještě není registrován na portálu Apple Developer, systém nabídne jeho automatické vytvoření. Po registraci je Bundle ID připojen k týmu a nelze jej přenést na jiný účet vývojáře bez kontaktování podpory Apple. Každý Bundle ID může mít několik profilů pro podepisování pro různá prostředí: Development, Ad Hoc, App Store.

Při registraci Bundle ID pro iOS aplikaci s rozšířeními je třeba každou komponentu registrovat samostatně. Rozšíření widgetů, klávesnice, Notification Service a Watch App mají vlastní identifikátory odvozené od hlavního. App Store Connect je spojuje do skupiny při vytváření App Record, což umožňuje publikovat všechny komponenty jako jednu aplikaci.

Nastavení Bundle ID v projektu Xcode

Nastavení Bundle ID v Xcode se provádí na několika místech: Info.plist, Build Settings a Signing & Capabilities. Centrální pole — Bundle Identifier v targetu aplikace. Všechny služby Apple, od Push Notifications po CloudKit, jsou k tomuto identifikátoru připojeny. Nesprávně uvedený Bundle ID vede k chybám podepisování a nemožnosti publikace v App Store.

Změna Bundle ID v Xcode

xml
<!-- Info.plist — základní Bundle ID projektu -->
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>

<!-- Build Settings — proměnná PRODUCT_BUNDLE_IDENTIFIER -->
<!-- Debug: com.example.app.dev -->
<!-- Release: com.example.app -->

Xcode používá proměnnou PRODUCT_BUNDLE_IDENTIFIER v Build Settings. Pro různé konfigurace kompilace lze nastavit různé hodnoty: com.example.app.dev pro Debug a com.example.app pro Release. To je pohodlné pro paralelní instalaci vývojové verze vedle produkční na stejném zařízení pro testování.

Vícecílové nastavení

Pokud má aplikace rozšíření (Notification Service, Widget, Watch App), každé rozšíření obdrží vlastní Bundle ID s příponou. Hlavní aplikace: com.example.app. Rozšíření widgetu: com.example.app.widget. Watch App: com.example.app.watchkit. Každý identifikátor se registruje samostatně na Apple Developer Portal a obdrží samostatný profil pro podepisování. Xcode automaticky spravuje tyto závislosti při kompilaci.

Rozdíly mezi App Bundle ID a Package Name

App Bundle ID (Apple) a Package Name (Google) — jsou analogické entity se stejným účelem, ale s odlišnými pravidly použití v ekosystémech iOS a Android. Oba identifikátory používají reverse domain notation a nelze je změnit po publikaci v oficiálních obchodech s aplikacemi.

Funkční rozdíly

V ekosystému Apple je Bundle ID spojen s profilem pro podepisování a certifikáty. Při změně vývojářského týmu lze Bundle ID přenést mezi účty prostřednictvím App Store Connect. V Androidu je Package Name pevně připojen k aplikaci v Google Play a nelze jej přenést mezi účty vývojářů.

CharakteristikaiOS Bundle IDAndroid Package Name
Maximální délkaNeomezená150 znaků
Oddělovač segmentůTečka (.)Tečka (.)
Povolené znakyA-Z, a-z, 0-9, tečka, pomlčkaA-Z, a-z, 0-9, tečka, podtržítko
WildcardPodporován (*)Nepodporován
Použití v kóduBundle.main.bundleIdentifierBuildConfig.APPLICATION_ID

Navzdory rozdílům hrají oba identifikátory kritickou roli: bez nich nelze aplikaci publikovat v oficiálním obchodě. Doporučení pro multiplatformní projekty — používejte stejný identifikátor v iOS a Android verzích pro zjednodušení integrace s Firebase, Analytics a dalšími službami. To také usnadňuje navigaci pro vývojářský tým: jeden identifikátor pro oba projekty snižuje zmatek při konfiguraci CI/CD a nastavení prostředí.

Při vývoji s Flutter nebo React Native je jednotný identifikátor obzvláště důležitý, protože kódová základna je společná a mnoho nástrojů automatické kompilace očekává stejný název balíčku pro obě platformy. Firebase projekt je také připojen k jednomu identifikátoru pro iOS a Android, což zjednodušuje konfiguraci analytiky a hlášení chyb.

Často kladené otázky

Lze změnit Bundle ID po publikaci aplikace?

Změna Bundle ID po publikaci v App Store nebo Google Play není možná. Systém bude nový identifikátor vnímat jako zcela jinou aplikaci. Pro aktualizaci stávajícího produktu musí Bundle ID zůstat nezměněn po celý životní cyklus aplikace.

Co se stane, pokud dvě aplikace mají stejný Bundle ID?

Zařízení iOS nebo Android nedovolí instalaci druhé aplikace se stejným identifikátorem přes první. Systém zobrazí chybu a nabídne odstranění stávající aplikace. V obchodech bude publikace s duplicitním Bundle ID také zablokována.

Jak správně vybrat Bundle ID pro nový projekt?

Použijte reverse domain notation vaší společnosti: com.názevspolečnosti.názevaplikace. Vyhněte se pomlčkám a speciálním znakům. Pokud má aplikace rozšíření, přidejte přípony přes tečku. Ujistěte se, že identifikátor je jedinečný a není obsazen jiným vývojářem.

Je potřeba samostatný Bundle ID pro každé rozšíření aplikace?

Ano, každé rozšíření — widget, Watch App, Notification Service — vyžaduje vlastní Bundle ID. Identifikátory tvoří hierarchii: com.example.app jako základ, com.example.app.widget pro widget, com.example.app.watchkit pro Watch. Všechny se registrují samostatně na Apple Developer Portal a používají společný App ID s nadřazenou aplikací.

Jaký je rozdíl mezi Bundle ID a App ID na portálu Apple Developer?

Bundle ID — je řetězec identifikátoru v kódu aplikace. App ID — je objekt na portálu Apple Developer, který spojuje Bundle ID se sadou zahrnutých služeb (capabilities). App ID se vytváří na základě Bundle ID a používá se pro generování profilů pro podepisování.

Shrnutí

  • App Bundle ID — jedinečný identifikátor aplikace v ekosystémech iOS a Android
  • Formát založený na reverse domain notation: com.company.appname
  • Změna Bundle ID po publikaci není možná bez vytvoření nové aplikace v obchodě
  • Wildcard Bundle ID com.example.* je pohodlný pro vývoj, ale nekompatibilní s Push, CloudKit a In-App Purchase
  • Rozšíření aplikace obdrží vlastní Bundle ID s příponami přes tečku
  • Registrace se provádí na Apple Developer Portal a v Google Play Console
  • Doporučení — vybírejte identifikátor uvážlivě, zkontrolujte jedinečnost před publikací

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také