Che cos'è il formato di file BUNDLE?
.bundle è un formato bundle plug-in per macOS, sviluppato da Apple. Piuttosto che un vero file singolo, un .bundle è un pacchetto di directory - una cartella che il Finder presenta come un unico elemento opaco, un concetto ereditato da NeXTSTEP e formalizzato in Mac OS X 10.0.
I file con estensione .bundle contengono codice eseguibile e risorse. I file .bundle sono utilizzati come contenitori macOS per la distribuzione di:
- applicazioni,
- framework (piattaforme di sviluppo e librerie),
- plug-in.
I dati del .bundle sono organizzati diversamente a seconda del tipo di contenuti memorizzati. Il tipo di dati contenuti in un file .bundle determina anche come il Finder mostrerà il file. I plug-in e le applicazioni sono visualizzati come file singoli che possono essere ispezionati utilizzando il comando Mostra contenuto pacchetto. I framework sono visualizzati come cartelle di file. I file .bundle non dovrebbero essere aperti manualmente indipendentemente dal loro contenuto.
Internamente, un .bundle segue il layout CFBundle: una cartella Contents/ con un manifesto Info.plist (che dichiara CFBundlePackageType = BNDL), una sottocartella MacOS/ con l'eseguibile Mach-O e Resources/. I tipi correlati includono .app, .framework, .kext e .plugin.
Sicurezza e incolumità
RISCHIO: MEDIUMUn .bundle contiene codice eseguibile che un'app host caricherà ed eseguirà, quindi comporta le stesse considerazioni di affidabilità dell'installazione di qualsiasi plug-in: installa bundle solo da fonti di cui ti fidi e preferisci quelli firmati/notarizzati in modo che macOS Gatekeeper possa verificarli. La semplice navigazione dei contenuti di un bundle nel Finder è innocua; il rischio è caricare un plug-in non attendibile in un'app, che poi esegue il suo codice con i privilegi di quell'app.
Dettagli del formato
in sintesi- Locale I18n di Ruby/Rails o gem .bundle (estensione compilata) - Su macOS un'estensione C di Ruby compilata è un bundle caricabile Mach-O chiamato *.bundle all'interno di una gem.
- Siemens NX / 'bundle' di dati applicativi generici - Alcune app scrivono un file .bundle proprietario a file singolo contenente impostazioni o risorse raggruppate.
Programmi che aprono file BUNDLE
Dettagli tecnici
specifiche approfondite| Tipo di formato | Pacchetto directory macOS - una cartella che il Finder presenta come un singolo file opaco |
| Sviluppatore | Apple |
| Struttura interna | Cartella `Contents/` con `Info.plist`, `MacOS/` (eseguibile Mach-O), `Resources/` e sottodirectory opzionali `Frameworks/` e `PlugIns/` |
| Codice tipo pacchetto | `BNDL` - impostato come `CFBundlePackageType` in `Info.plist` |
| Formato eseguibile | Binario Mach-O; magic bytes `FE ED FA CE` (32-bit BE), `CF FA ED FE` (64-bit LE), o `CA FE BA BE` (binario universale/fat) |
| Manifesto metadati | `Info.plist` - elenco di proprietà XML o binario che dichiara l'identificatore del bundle, la versione, il nome dell'eseguibile e il tipo di pacchetto |
| Tipo MIME | `application/octet-stream`; riportato anche come `inode/directory` sui sistemi POSIX |
| Contenitore filesystem | Directory HFS+ o APFS con il bit di pacchetto impostato; visualizzato come elemento unificato nel Finder |
| Firma del codice | L'eseguibile Mach-O all'interno del bundle può essere firmato con `codesign`; imposto da Gatekeeper e notarizzazione su macOS 10.15+ |
| Supporto piattaforma | macOS (primario); iOS e iPadOS (bundle caricabili incorporati all'interno dei pacchetti `.app`); originariamente NeXTSTEP |
| Dimensione tipica del file | Da decine di KB a decine di MB, a seconda del codice del plug-in e delle risorse incluse |
| Codifica | Mista - eseguibile binario Mach-O più `Info.plist` in formato XML o binario e file di risorse testuali |
| Comportamento su Windows | Il bundle copiato appare come una cartella ordinaria; la semantica dei pacchetti macOS è assente su Windows |
| Metodo di identificazione | Identificato dal suffisso del nome della directory `.bundle` e dalla presenza di `Contents/Info.plist`; non esistono magic bytes a livello di file |
| Identificatore bundle | Ogni `.bundle` porta una stringa `CFBundleIdentifier` in formato DNS inverso (es. `com.example.plugin`) utilizzata per l'univocità e la firma del codice |
| Rilasciato | 1990s (NeXTSTEP bundle concept); formalized in Mac OS X 10.0, 2001 |
| Ultima versione | Modern Core Foundation / Foundation bundle layout (current macOS) |
| Standard aperto | Sì · royalty-free |
| Specifica | developer.apple.com |
Conversioni BUNDLE
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file BUNDLE.