Was ist das BUNDLE-Dateiformat?
.bundle ist ein Plugin-Bundle-Format für macOS, entwickelt von Apple. Anstatt eine echte einzelne Datei zu sein, ist ein .bundle ein Verzeichnispaket - ein Ordner, den Finder als ein einziges undurchsichtiges Element darstellt, ein Konzept, das von NeXTSTEP übernommen und in Mac OS X 10.0 formalisiert wurde.
Dateien mit der Erweiterung .bundle enthalten ausführbaren Code und Ressourcen. .bundle-Dateien werden als macOS-Container für die Verteilung von Folgendem verwendet:
- Anwendungen,
- Frameworks (Entwicklungsplattformen und Bibliotheken),
- Plugins.
.bundle-Daten sind je nach Art des gespeicherten Inhalts unterschiedlich organisiert. Die Art der Daten, die eine .bundle-Datei enthält, bestimmt auch, wie Finder die Datei anzeigt. Plugins und Anwendungen werden als einzelne Dateien angezeigt, die mit dem Befehl Paketinhalt anzeigen untersucht werden können. Frameworks werden als Dateiordner angezeigt. .bundle-Dateien sollten unabhängig von ihrem Inhalt nicht manuell geöffnet werden.
Intern folgt ein .bundle dem CFBundle-Layout: ein Contents/-Ordner mit einem Info.plist-Manifest (das CFBundlePackageType = BNDL deklariert), einem MacOS/-Unterordner mit dem Mach-O-Executable und Resources/. Verwandte Typen sind .app, .framework, .kext und .plugin.
Sicherheit
RISIKO: MEDIUMEin .bundle enthält ausführbaren Code, den eine Host-App laden und ausführen wird, sodass dieselben Vertrauenserwägungen wie bei der Installation eines Plugins gelten: Installieren Sie Bundles nur von Quellen, denen Sie vertrauen, und bevorzugen Sie code-signierte/notarisierte, damit macOS Gatekeeper sie überprüfen kann. Das bloße Durchsuchen des Bundle-Inhalts in Finder ist harmlos; das Risiko besteht darin, ein nicht vertrauenswürdiges Plugin in eine App zu laden, die dann seinen Code mit den Berechtigungen dieser App ausführt.
Formatdetails
kurz gefasst- Ruby/Rails I18n locale or gem .bundle (compiled extension) - Unter macOS ist eine kompilierte Ruby-C-Erweiterung ein als *.bundle benanntes Mach-O-ladbares Bundle innerhalb eines Gems.
- Siemens NX / generic application data 'bundle' - Eine Handvoll Anwendungen schreibt ein proprietäres Einzel-Datei-.bundle mit gruppierten Einstellungen oder Assets.
Programme zum Öffnen von BUNDLE-Dateien
Technische Details
technische Spezifikation| Formattyp | macOS-Verzeichnispaket - ein Ordner, den Finder als einzelnes undurchsichtiges Element darstellt |
| Entwickler | Apple |
| Interne Struktur | `Contents/`-Ordner mit `Info.plist`, `MacOS/` (Mach-O-Executable), `Resources/` und optionalen `Frameworks/`- und `PlugIns/`-Unterverzeichnissen |
| Pakettyp-Code | `BNDL` - als `CFBundlePackageType` in `Info.plist` gesetzt |
| Executable-Format | Mach-O-Binär; Magic Bytes `FE ED FA CE` (32-Bit BE), `CF FA ED FE` (64-Bit LE) oder `CA FE BA BE` (Universal/Fat Binary) |
| Metadaten-Manifest | `Info.plist` - XML- oder binäres Property-List, das Bundle-Kennung, Version, Executable-Name und Pakettyp deklariert |
| MIME-Typ | `application/octet-stream`; auch als `inode/directory` auf POSIX-Systemen gemeldet |
| Dateisystem-Container | HFS+- oder APFS-Verzeichnis mit gesetztem Paket-Bit; wird in Finder als einheitliches Element angezeigt |
| Code-Signierung | Mach-O-Executable im Bundle kann mit `codesign` signiert werden; durch Gatekeeper und Notarisierung unter macOS 10.15+ erzwungen |
| Plattformunterstützung | macOS (primär); iOS und iPadOS (ladbare Bundles, die in `.app`-Paketen eingebettet sind); ursprünglich NeXTSTEP |
| Typische Dateigröße | Dutzende KB bis dutzende MB, abhängig vom Plugin-Code und den gebündelten Ressourcen |
| Codierung | Gemischt - binäres Mach-O-Executable plus XML- oder binärformatiertes `Info.plist` und Textressourcendateien |
| Windows-Verhalten | Kopiertes Bundle erscheint als gewöhnlicher Ordner; macOS-Paketsemantik fehlt unter Windows |
| Identifikationsmethode | Identifiziert durch das `.bundle`-Verzeichnisname-Suffix und das Vorhandensein von `Contents/Info.plist`; keine Dateiebenen-Magic-Bytes vorhanden |
| Bundle-Kennung | Jedes `.bundle` trägt eine Reverse-DNS-`CFBundleIdentifier`-Zeichenkette (z. B. `com.example.plugin`), die für Eindeutigkeit und Code-Signierung verwendet wird |
| Veröffentlicht | 1990s (NeXTSTEP bundle concept); formalized in Mac OS X 10.0, 2001 |
| Neueste Version | Modern Core Foundation / Foundation bundle layout (current macOS) |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | developer.apple.com |
BUNDLE-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu BUNDLE-Dateien.