App Bundle ID — co to jest, identyfikator aplikacji i rejestracja

Autor: IT Sectr Opublikowano: 2026-04-17 Czas czytania: 8 min

App Bundle ID — to unikalny identyfikator aplikacji używany w ekosystemach Apple i Google do rejestracji, podpisywania i dystrybucji produktu programowego. Każda aplikacja otrzymuje swój Bundle ID przy tworzeniu projektu, a identyfikator ten pozostaje niezmienny przez cały cykl życia. Według Apple Developer Documentation, Bundle ID jest używany do przypisywania usług, certyfikatów i profili podpisu.

Najważniejsze

  • App Bundle ID — globalny identyfikator, unikalny dla każdej aplikacji w sklepie
  • Format oparty na reverse domain notation: com.company.appname
  • Rejestracja wykonywana w App Store Connect i Google Play Console
  • Zmiana Bundle ID po publikacji jest niemożliwa bez utworzenia nowej aplikacji
  • Przypisanie usług (Push, CloudKit, Firebase) odbywa się przez Bundle ID

Co to jest App Bundle ID

Bundle Identifier — to ciąg znaków, który jednoznacznie identyfikuje aplikację w systemie operacyjnym i sklepie z aplikacjami. W iOS i macOS nazywa się Bundle ID, w Android — Package Name, choć funkcjonalnie oba pełnią tę samą rolę: zapewniają unikalność aplikacji na urządzeniu i w sklepie.

Przeznaczenie Bundle ID

System operacyjny używa Bundle ID do rozróżniania aplikacji na urządzeniu. Dwie aplikacje z tym samym identyfikatorem nie mogą być zainstalowane jednocześnie — system traktuje je jako ten sam produkt. Sklepy z aplikacjami również sprawdzają unikalność Bundle ID przy publikacji.

Historia i standardy nazewnictwa

Apple wprowadziło Bundle ID wraz z wydaniem iOS SDK w 2008 roku. Format reverse domain notation został zapożyczony z Javy (package naming convention), gdzie używany jest do zapobiegania konfliktom nazw klas. Google przejął tę praktykę dla Androida, co zapewniło jednolitość w obu mobilnych ekosystemach.

PlatformaNazwa polaPrzykład
iOS/macOSBundle Identifiercom.example.myapp
AndroidPackage Namecom.example.myapp
watchOSBundle Identifiercom.example.myapp.watchkit
tvOSBundle Identifiercom.example.myapp.tvos

Jak zbudowany jest format Bundle ID

Bundle ID składa się z kilku segmentów oddzielonych kropkami. Pierwsza część — identyfikator programisty lub firmy (com, org, net). Druga — domena firmy (example, google, apple). Kolejne segmenty określają nazwę aplikacji i platformy.

Struktura Bundle ID

Typowy Bundle ID wygląda jak com.company.appname. Apple zaleca używanie odwrotnego zapisu nazwy domeny, aby zagwarantować globalną unikalność. Jeśli firma nie ma domeny, dopuszcza się użycie emaila: com.example.myapp lub org.example.myapp.

  • Segment 1 — TLD w odwrotnej kolejności: com, org, io, net
  • Segment 2 — domena firmy lub programisty: google, apple, mycompany
  • Segment 3 — nazwa aplikacji: maps, mail, notes
  • Dodatkowo — platforma lub rozszerzenie: watchkit, todaywidget

Wildcard Bundle ID

Apple obsługuje Wildcard Bundle ID — szablon identyfikatora z gwiazdką: com.example.*. Taki szablon pozwala używać jednego App ID dla kilku aplikacji jednej firmy. Wildcard ID jest wygodny na etapie rozwoju, ale nie jest zalecany do produkcji, ponieważ ogranicza używanie niektórych usług Apple.

Ograniczenia wildcard: Push-Notifications, CloudKit, In-App Purchase i Game Center wymagają dokładnego (explicit) Bundle ID. Przy użyciu szablonu com.example.* te usługi są niedostępne. Dla aplikacji produkcyjnych zawsze używaj explicit Bundle ID, aby zapewnić pełną funkcjonalność wszystkich usług Apple.

Oprócz wildcard, Apple obsługuje identyfikatory prefiksowe, które są przypisywane zespołom programistów przy rejestracji w Apple Developer Program. Prefiks (Team ID) jest automatycznie dodawany do wszystkich App ID i profili podpisu. Dwa różne Team ID mogą utworzyć ten sam Bundle ID, ale na urządzeniu są one uznawane za różne aplikacje.

Rejestracja Bundle ID w konsolach

Rejestracja Bundle ID — obowiązkowy etap przed publikacją aplikacji. W ekosystemie Apple rejestracja odbywa się w Apple Developer Portal przez sekcję Certificates, Identifiers & Profiles. W Google Play Bundle ID jest podawany przy tworzeniu aplikacji w konsoli programisty.

Rejestracja w Apple Developer Portal

Na portalu Apple Developer wybierz sekcję Identifiers, kliknij przycisk Register i określ typ App ID. Wprowadź dokładną nazwę Bundle ID i wybierz niezbędne capabilities: Push Notifications, CloudKit, Sign in with Apple. Po rejestracji identyfikator staje się dostępny do tworzenia profili podpisu.

swift
// Sprawdzanie Bundle ID w kodzie aplikacji
let bundleID = Bundle.main.bundleIdentifier
print("Aktualny Bundle ID: \(bundleID ?? "unknown")")

// Sprawdzanie Bundle ID dla warunków kompilacji
if bundleID == "com.example.app.production" {
    // Konfiguracja produkcyjna
    Analytics.shared.configure(.production)
}

Rejestracja w Google Play Console

Google Play Console nie wymaga wcześniejszej rejestracji Bundle ID. Identyfikator jest podawany w pliku build.gradle modułu aplikacji i musi być unikalny w ramach całego Google Play. Po utworzeniu aplikacji zmiana Package Name jest niemożliwa, dlatego wybieraj identyfikator starannie i sprawdź jego unikalność przez wyszukiwanie w Google Play. Google nie zwalnia identyfikatorów usuniętych aplikacji, więc zajęty raz Bundle ID pozostaje niedostępny dla innych programistów.

Przy rejestracji w App Store Connect należy podać Bundle ID z istniejącego zestawu zarejestrowanych identyfikatorów. Jeśli identyfikator nie jest jeszcze zarejestrowany na portalu Apple Developer, system zaproponuje utworzenie go automatycznie. Po rejestracji Bundle ID jest przypisywany do zespołu i nie może być przeniesiony na inne konto programisty bez kontaktu z pomocą Apple. Każdy Bundle ID może mieć kilka profili podpisu dla różnych środowisk: Development, Ad Hoc, App Store.

Przy rejestracji Bundle ID dla aplikacji iOS z rozszerzeniami konieczna jest rejestracja każdego komponentu osobno. Rozszerzenia widgetów, klawiatury, Notification Service i Watch App mają własne identyfikatory pochodne od głównego. App Store Connect łączy je w grupę przy tworzeniu App Record, co pozwala publikować wszystkie komponenty jako jedną aplikację.

Konfiguracja Bundle ID w projekcie Xcode

Konfiguracja Bundle ID w Xcode odbywa się w kilku miejscach: Info.plist, Build Settings i Signing & Capabilities. Centralne pole — Bundle Identifier w targecie aplikacji. Wszystkie usługi Apple, od Push-Notifications po CloudKit, są przypisywane do tego identyfikatora. Nieprawidłowo podany Bundle ID prowadzi do błędów podpisu i niemożliwości publikacji w App Store.

Zmiana Bundle ID w Xcode

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

<!-- Build Settings — zmienna PRODUCT_BUNDLE_IDENTIFIER -->
<!-- Debug: com.example.app.dev -->
<!-- Release: com.example.app -->

Xcode używa zmiennej PRODUCT_BUNDLE_IDENTIFIER w Build Settings. Dla różnych konfiguracji kompilacji można ustawić różne wartości: com.example.app.dev dla Debug i com.example.app dla Release. Jest to wygodne do równoległej instalacji wersji deweloperskiej obok produkcyjnej na jednym urządzeniu do testowania.

Konfiguracja wielotargetowa

Jeśli aplikacja ma rozszerzenia (Notification Service, Widget, Watch App), każde rozszerzenie otrzymuje własny Bundle ID z sufiksem. Główna aplikacja: com.example.app. Rozszerzenie widgetu: com.example.app.widget. Watch App: com.example.app.watchkit. Każdy identyfikator jest rejestrowany osobno w Apple Developer Portal i otrzymuje oddzielny profil podpisu. Xcode automatycznie zarządza tymi zależnościami przy kompilacji.

Różnice między App Bundle ID a Package Name

App Bundle ID (Apple) i Package Name (Google) — to analogiczne encje z tym samym przeznaczeniem, ale różnymi zasadami użycia w ekosystemach iOS i Android. Oba identyfikatory używają reverse domain notation i nie mogą być zmienione po publikacji w oficjalnych sklepach z aplikacjami.

Różnice funkcjonalne

W ekosystemie Apple Bundle ID jest powiązany z profilem podpisu i certyfikatami. Przy zmianie zespołu programistów Bundle ID można przenieść między kontami przez App Store Connect. W Android Package Name jest sztywno przypisany do aplikacji w Google Play i nie może być przeniesiony między kontami programistów.

CharakterystykaiOS Bundle IDAndroid Package Name
Maksymalna długośćNieograniczona150 znaków
Separator segmentówKropka (.)Kropka (.)
Dozwolone znakiA-Z, a-z, 0-9, kropka, myślnikA-Z, a-z, 0-9, kropka, podkreślenie
WildcardObsługiwany (*)Nieobsługiwany
Użycie w kodzieBundle.main.bundleIdentifierBuildConfig.APPLICATION_ID

Pomimo różnic, oba identyfikatory pełnią krytyczną rolę: bez nich nie można opublikować aplikacji w oficjalnym sklepie. Zalecenie dla projektów cross-platformowych — używaj tego samego identyfikatora w wersjach iOS i Android, aby uprościć integrację z Firebase, Analytics i innymi usługami. Ułatwia to również nawigację dla zespołu programistów: jeden identyfikator dla obu projektów zmniejsza zamieszanie przy konfiguracji CI/CD i konfiguracji środowisk.

Przy tworzeniu aplikacji przy użyciu Flutter lub React Native jednolity identyfikator jest szczególnie ważny, ponieważ baza kodu jest wspólna, a wiele narzędzi automatycznej kompilacji oczekuje tej samej nazwy pakietu dla obu platform. Projekt Firebase również jest przypisywany do jednego identyfikatora dla iOS i Android, co upraszcza konfigurację analityki i raportowania błędów.

Często zadawane pytania

Czy można zmienić Bundle ID po publikacji aplikacji?

Zmiana Bundle ID po publikacji w App Store lub Google Play jest niemożliwa. System odbierze nowy identyfikator jako całkowicie inną aplikację. Do aktualizacji istniejącego produktu Bundle ID musi pozostać niezmienny przez cały cykl życia aplikacji.

Co się stanie, jeśli dwie aplikacje mają ten sam Bundle ID?

Urządzenie iOS lub Android nie pozwoli na zainstalowanie drugiej aplikacji z tym samym identyfikatorem na pierwszej. System wyświetli błąd i zaproponuje usunięcie istniejącej aplikacji. W sklepach publikacja z duplikującym się Bundle ID również zostanie zablokowana.

Jak prawidłowo wybrać Bundle ID dla nowego projektu?

Użyj reverse domain notation swojej firmy: com.nazwafirmy.nazwaaplikacji. Unikaj myślników i specjalnych znaków. Jeśli aplikacja ma rozszerzenia, dodaj sufiksy przez kropkę. Upewnij się, że identyfikator jest unikalny i nie jest zajęty przez innego programistę.

Czy potrzebny jest osobny Bundle ID dla każdego rozszerzenia aplikacji?

Tak, każde rozszerzenie — widget, Watch App, Notification Service — wymaga własnego Bundle ID. Identyfikatory tworzą hierarchię: com.example.app jako podstawowy, com.example.app.widget dla widgetu, com.example.app.watchkit dla Watch. Wszystkie są rejestrowane osobno w Apple Developer Portal i używają wspólnego App ID z aplikacją nadrzędną.

Czym różni się Bundle ID od App ID na portalu Apple Developer?

Bundle ID — to ciąg identyfikatora w kodzie aplikacji. App ID — to obiekt w Apple Developer Portal, który łączy Bundle ID z zestawem włączonych usług (capabilities). App ID jest tworzony na podstawie Bundle ID i używany do generowania profili podpisu.

Podsumowanie

  • App Bundle ID — unikalny identyfikator aplikacji w ekosystemach iOS i Android
  • Format oparty na reverse domain notation: com.company.appname
  • Zmiana Bundle ID po publikacji jest niemożliwa bez utworzenia nowej aplikacji w sklepie
  • Wildcard Bundle ID com.example.* jest wygodny do rozwoju, ale niekompatybilny z Push, CloudKit i In-App Purchase
  • Rozszerzenia aplikacji otrzymują własne Bundle ID z sufiksami przez kropkę
  • Rejestracja odbywa się w Apple Developer Portal i Google Play Console odpowiednio
  • Zalecenie — wybieraj identyfikator rozsądnie, sprawdź unikalność przed publikacją

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również