App Bundle ID — cos’è, identificatore dell’app e registrazione

Autore: IT Sectr Pubblicato: 2026-04-17 Tempo di lettura: 8 min

App Bundle ID — è un identificatore univoco dell’applicazione utilizzato negli ecosistemi Apple e Google per la registrazione, la firma e la distribuzione di un prodotto software. Ogni app riceve il suo Bundle ID alla creazione del progetto e questo identificatore rimane invariato per tutto il ciclo di vita. Secondo la Documentazione per Sviluppatori Apple, il Bundle ID viene utilizzato per collegare servizi, certificati e profili di provisioning.

Punti chiave

  • App Bundle ID — un identificatore globale, univoco per ogni app nello store
  • Formato basato sulla notazione inversa del dominio: com.company.appname
  • Registrazione effettuata in App Store Connect e Google Play Console
  • Modifica del Bundle ID dopo la pubblicazione è impossibile senza creare una nuova app
  • Collegamento dei servizi (Push, CloudKit, Firebase) avviene tramite Bundle ID

Cos’è App Bundle ID

Bundle Identifier è una stringa che identifica univocamente un’applicazione nel sistema operativo e nello store delle app. Su iOS e macOS si chiama Bundle ID, su Android — Package Name, sebbene funzionalmente entrambi svolgano lo stesso ruolo: garantire l’unicità dell’app sul dispositivo e nello store.

Scopo del Bundle ID

Il sistema operativo utilizza il Bundle ID per differenziare le app sul dispositivo. Due app con lo stesso identificatore non possono essere installate contemporaneamente — il sistema le tratta come lo stesso prodotto. Anche gli store delle app verificano l’unicità del Bundle ID durante la pubblicazione.

Storia e standard di denominazione

Apple ha introdotto il Bundle ID con il rilascio dell’iOS SDK nel 2008. Il formato di notazione inversa del dominio è stato preso in prestito da Java (convenzione di denominazione dei package), dove viene utilizzato per prevenire conflitti di nomi di classi. Google ha adottato questa pratica per Android, garantendo coerenza in entrambi gli ecosistemi mobili.

PiattaformaNome del campoEsempio
iOS/macOSBundle Identifiercom.example.myapp
AndroidPackage Namecom.example.myapp
watchOSBundle Identifiercom.example.myapp.watchkit
tvOSBundle Identifiercom.example.myapp.tvos

Come funziona il formato Bundle ID

Il Bundle ID è composto da diversi segmenti separati da punti. La prima parte è l’identificatore dello sviluppatore o dell’azienda (com, org, net). La seconda è il dominio dell’azienda (example, google, apple). I segmenti successivi specificano il nome dell’app e la piattaforma.

Struttura del Bundle ID

Un Bundle ID tipico ha il formato com.company.appname. Apple raccomanda di utilizzare la notazione inversa del dominio per garantire l’unicità globale. Se l’azienda non ha un dominio, è consentito l’uso dell’email: com.example.myapp o org.example.myapp.

  • Segmento 1 — TLD in ordine inverso: com, org, io, net
  • Segmento 2 — dominio dell’azienda o dello sviluppatore: google, apple, mycompany
  • Segmento 3 — nome dell’app: maps, mail, notes
  • Aggiuntivo — piattaforma o estensione: watchkit, todaywidget

Wildcard Bundle ID

Apple supporta il Wildcard Bundle ID — un modello di identificatore con asterisco: com.example.*. Questo modello consente di utilizzare un unico App ID per più app della stessa azienda. Il Wildcard ID è comodo durante lo sviluppo, ma non è raccomandato per la produzione perché limita l’uso di alcuni servizi Apple.

Limitazioni del wildcard: Le notifiche Push, CloudKit, gli acquisti in-app (In-App Purchase) e Game Center richiedono un Bundle ID esplicito (explicit). Utilizzando il modello com.example.*, questi servizi non sono disponibili. Per le app in produzione, utilizzate sempre un Bundle ID esplicito per garantire la piena funzionalità di tutti i servizi Apple.

Oltre al wildcard, Apple supporta identificatori con prefisso che vengono assegnati al team di sviluppo al momento della registrazione all’Apple Developer Program. Il prefisso (Team ID) viene automaticamente aggiunto a tutti gli App ID e ai profili di provisioning. Due Team ID diversi possono creare lo stesso Bundle ID, ma sul dispositivo vengono considerati app diverse.

Registrazione del Bundle ID nelle console

La registrazione del Bundle ID è un passaggio obbligatorio prima di pubblicare un’app. Nell’ecosistema Apple, la registrazione viene effettuata nell’Apple Developer Portal attraverso la sezione Certificates, Identifiers & Profiles. In Google Play, il Bundle ID viene specificato durante la creazione dell’app nella console sviluppatore.

Registrazione nell’Apple Developer Portal

Nel portale Apple Developer, selezionate la sezione Identifiers, fate clic sul pulsante Register e specificate il tipo di App ID. Inserite il nome esatto del Bundle ID e selezionate le capacità necessarie: Push Notifications, CloudKit, Sign in with Apple. Dopo la registrazione, l’identificatore diventa disponibile per la creazione di profili di provisioning.

swift
// Verifica del Bundle ID nel codice dell’app
let bundleID = Bundle.main.bundleIdentifier
print("Current Bundle ID: \(bundleID ?? "unknown")")

// Verifica del Bundle ID per le condizioni di build
if bundleID == "com.example.app.production" {
    // Configurazione di produzione
    Analytics.shared.configure(.production)
}

Registrazione in Google Play Console

Google Play Console non richiede una registrazione preventiva del Bundle ID. L’identificatore viene specificato nel file build.gradle del modulo dell’app e deve essere univoco in tutto Google Play. Dopo la creazione dell’app, è impossibile modificare il Package Name, quindi scegliete l’identificatore con attenzione e verificate la sua unicità tramite una ricerca in Google Play. Google non rilascia gli identificatori delle app rimosse, quindi un Bundle ID una volta occupato rimane non disponibile per altri sviluppatori.

Durante la registrazione in App Store Connect, dovete specificare un Bundle ID dall’insieme esistente di identificatori registrati. Se l’identificatore non è ancora registrato nel portale Apple Developer, il sistema offrirà di crearlo automaticamente. Dopo la registrazione, il Bundle ID viene legato al team e non può essere trasferito su un altro account sviluppatore senza contattare il supporto Apple. Ogni Bundle ID può avere più profili di provisioning per diversi ambienti: Development, Ad Hoc, App Store.

Durante la registrazione di un Bundle ID per un’app iOS con estensioni, ogni componente deve essere registrato separatamente. Le estensioni dei widget, le tastiere, Notification Service e Watch App hanno i propri identificatori derivati da quello principale. App Store Connect li raggruppa durante la creazione di un App Record, consentendo di pubblicare tutti i componenti come un’unica app.

Configurazione del Bundle ID nel progetto Xcode

La configurazione del Bundle ID in Xcode viene effettuata in diversi punti: Info.plist, Build Settings e Signing & Capabilities. Il campo centrale è Bundle Identifier nel target dell’app. Tutti i servizi Apple, dalle notifiche Push a CloudKit, sono legati a questo identificatore. Un Bundle ID specificato in modo errato causa errori di firma e l’impossibilità di pubblicare sull’App Store.

Modifica del Bundle ID in Xcode

xml
<!-- Info.plist — Bundle ID base del progetto -->
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>

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

Xcode utilizza la variabile PRODUCT_BUNDLE_IDENTIFIER nelle Build Settings. È possibile impostare valori diversi per diverse configurazioni di build: com.example.app.dev per Debug e com.example.app per Release. Ciò è comodo per installare una versione di sviluppo insieme alla versione di produzione sullo stesso dispositivo per i test.

Configurazione multi-target

Se l’app ha estensioni (Notification Service, Widget, Watch App), ogni estensione riceve il proprio Bundle ID con un suffisso. App principale: com.example.app. Estensione widget: com.example.app.widget. Watch App: com.example.app.watchkit. Ogni identificatore viene registrato separatamente nell’Apple Developer Portal e riceve il proprio profilo di provisioning. Xcode gestisce automaticamente queste dipendenze durante la compilazione.

Differenze tra App Bundle ID e Package Name

App Bundle ID (Apple) e Package Name (Google) sono entità simili con lo stesso scopo ma regole di utilizzo diverse negli ecosistemi iOS e Android. Entrambi gli identificatori utilizzano la notazione inversa del dominio e non possono essere modificati dopo la pubblicazione negli store ufficiali di app.

Differenze funzionali

Nell’ecosistema Apple, il Bundle ID è legato al profilo di provisioning e ai certificati. Quando si cambia team di sviluppo, il Bundle ID può essere trasferito tra account tramite App Store Connect. In Android, il Package Name è strettamente legato all’app in Google Play e non può essere trasferito tra account sviluppatore.

CaratteristicaiOS Bundle IDAndroid Package Name
Lunghezza massimaIllimitata150 caratteri
Separatore di segmentiPunto (.)Punto (.)
Caratteri consentitiA-Z, a-z, 0-9, punto, trattinoA-Z, a-z, 0-9, punto, trattino basso
WildcardSupportato (*)Non supportato
Uso nel codiceBundle.main.bundleIdentifierBuildConfig.APPLICATION_ID

Nonostante le differenze, entrambi gli identificatori svolgono un ruolo critico: senza di essi è impossibile pubblicare un’app in uno store ufficiale. Raccomandazione per progetti multipiattaforma — utilizzate lo stesso identificatore nelle versioni iOS e Android per semplificare l’integrazione con Firebase, Analytics e altri servizi. Ciò semplifica anche la navigazione per il team di sviluppo: un identificatore per entrambi i progetti riduce la confusione durante la configurazione di CI/CD e la configurazione degli ambienti.

Durante lo sviluppo con Flutter o React Native, un identificatore unico è particolarmente importante poiché la base di codice è condivisa e molti strumenti di build automatizzati si aspettano lo stesso nome di package per entrambe le piattaforme. Un progetto Firebase è anche legato a un unico identificatore per iOS e Android, semplificando la configurazione di analisi e crash reporting.

Domande frequenti

Si può modificare il Bundle ID dopo aver pubblicato l’app?

Modificare il Bundle ID dopo la pubblicazione sull’App Store o Google Play è impossibile. Il sistema tratterà il nuovo identificatore come un’app completamente diversa. Per aggiornare un prodotto esistente, il Bundle ID deve rimanere invariato per tutto il ciclo di vita dell’app.

Cosa succede se due app hanno lo stesso Bundle ID?

Un dispositivo iOS o Android non consentirà di installare una seconda app con lo stesso identificatore sopra la prima. Il sistema visualizzerà un errore e suggerirà di eliminare l’app esistente. Negli store, anche la pubblicazione con un Bundle ID duplicato verrà bloccata.

Come scegliere correttamente un Bundle ID per un nuovo progetto?

Utilizzate la notazione inversa del dominio della vostra azienda: com.companyname.appname. Evitate trattini e caratteri speciali. Se l’app ha estensioni, aggiungete suffissi separati da punti. Assicuratevi che l’identificatore sia unico e non occupato da un altro sviluppatore.

Ogni estensione dell’app necessita di un Bundle ID separato?

Sì, ogni estensione — widget, Watch App, Notification Service — richiede il proprio Bundle ID. Gli identificatori formano una gerarchia: com.example.app come base, com.example.app.widget per il widget, com.example.app.watchkit per Watch. Tutti vengono registrati separatamente nell’Apple Developer Portal e condividono un App ID comune con l’app principale.

Qual è la differenza tra Bundle ID e App ID nel portale Apple Developer?

Bundle ID è una stringa identificativa nel codice dell’app. App ID è un oggetto nell’Apple Developer Portal che combina un Bundle ID con un insieme di servizi abilitati (capabilities). L’App ID viene creato sulla base del Bundle ID e viene utilizzato per generare profili di provisioning.

Riepilogo

  • App Bundle ID — un identificatore unico dell’app negli ecosistemi iOS e Android
  • Formato basato sulla notazione inversa del dominio: com.company.appname
  • Modifica del Bundle ID dopo la pubblicazione è impossibile senza creare una nuova app nello store
  • Wildcard Bundle ID com.example.* è comodo per lo sviluppo ma incompatibile con Push, CloudKit e acquisti in-app
  • Estensioni ricevono i propri Bundle ID con suffissi separati da punto
  • Registrazione effettuata rispettivamente nell’Apple Developer Portal e in Google Play Console
  • Raccomandazione — scegliete l’identificatore con cura, verificate l’unicità prima della pubblicazione

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche