Qu'est-ce que le format de fichier BUNDLE ?
.bundle est un format de paquet de plug-in pour macOS, développé par Apple. Plutôt qu'un véritable fichier unique, un .bundle est un paquet de répertoire - un dossier que le Finder présente comme un élément opaque, un concept hérité de NeXTSTEP et formalisé dans Mac OS X 10.0.
Les fichiers avec l'extension .bundle contiennent du code exécutable et des ressources. Les fichiers .bundle sont utilisés comme conteneurs macOS pour la distribution de :
- applications,
- frameworks (plateformes de développement et bibliothèques),
- plug-ins.
Les données du .bundle sont organisées différemment selon le type de contenu qu'il stocke. Le type de données qu'un fichier .bundle contient détermine également comment le Finder affichera le fichier. Les plug-ins et les applications sont affichés comme des fichiers uniques qui peuvent être inspectés à l'aide de la commande « Afficher le contenu du paquet ». Les frameworks sont affichés comme des dossiers de fichiers. Les fichiers .bundle ne doivent pas être ouverts manuellement, quel que soit leur contenu.
En interne, un .bundle suit la structure CFBundle : un dossier Contents/ avec un manifeste Info.plist (déclarant CFBundlePackageType = BNDL), un sous-dossier MacOS/ avec l'exécutable Mach-O, et Resources/. Les types associés incluent .app, .framework, .kext et .plugin.
Sécurité et sûreté
RISQUE : MEDIUMUn .bundle contient du code exécutable qu'une application hôte chargera et exécutera, il comporte donc les mêmes considérations de confiance que l'installation de n'importe quel plug-in : n'installez que des bundles provenant de sources sûres, et privilégiez ceux signés/notarisés pour que macOS Gatekeeper puisse les vérifier. Le simple fait de parcourir le contenu d'un bundle dans le Finder est inoffensif ; le risque réside dans le chargement d'un plug-in non fiable dans une application, qui exécute alors son code avec les privilèges de cette application.
Détails du format
en bref- Locale I18n Ruby/Rails ou gem .bundle (extension compilée) - Sur macOS, une extension C Ruby compilée est un bundle chargeable Mach-O nommé *.bundle à l'intérieur d'un gem.
- Siemens NX / 'bundle' de données d'application générique - Quelques applications écrivent un fichier .bundle propriétaire unique regroupant des paramètres ou des ressources.
Programmes qui ouvrent les fichiers BUNDLE
Détails techniques
spécifications approfondies| Type de format | Paquet de répertoire macOS - un dossier que le Finder présente comme un fichier opaque unique |
| Développeur | Apple |
| Structure interne | Dossier `Contents/` avec `Info.plist`, `MacOS/` (exécutable Mach-O), `Resources/`, et sous-répertoires optionnels `Frameworks/` et `PlugIns/` |
| Code de type de paquet | `BNDL` - défini comme `CFBundlePackageType` dans `Info.plist` |
| Format d'exécutable | Binaire Mach-O ; octets magiques `FE ED FA CE` (32-bit BE), `CF FA ED FE` (64-bit LE), ou `CA FE BA BE` (binaire universel/fat) |
| Manifeste de métadonnées | `Info.plist` - liste de propriétés XML ou binaire déclarant l'identifiant du bundle, la version, le nom de l'exécutable et le type de paquet |
| Type MIME | `application/octet-stream` ; également signalé comme `inode/directory` sur les systèmes POSIX |
| Conteneur de système de fichiers | Répertoire HFS+ ou APFS avec le bit de paquet activé ; affiché comme un élément unifié dans le Finder |
| Signature de code | L'exécutable Mach-O à l'intérieur du bundle peut être signé avec `codesign` ; appliqué par Gatekeeper et la notarisation sur macOS 10.15+ |
| Prise en charge des plateformes | macOS (principal) ; iOS et iPadOS (bundles chargeables intégrés dans les paquets `.app`) ; à l'origine NeXTSTEP |
| Taille de fichier typique | De quelques dizaines de Ko à plusieurs dizaines de Mo, selon le code du plug-in et les ressources intégrées |
| Encodage | Mixte - exécutable binaire Mach-O plus `Info.plist` au format XML ou binaire et fichiers de ressources texte |
| Comportement sous Windows | Un bundle copié apparaît comme un dossier ordinaire ; la sémantique des paquets macOS est absente sur Windows |
| Méthode d'identification | Identifié par le suffixe de nom de répertoire `.bundle` et la présence de `Contents/Info.plist` ; il n'existe pas d'octets magiques au niveau du fichier |
| Identifiant de bundle | Chaque `.bundle` porte une chaîne `CFBundleIdentifier` en DNS inversé (ex: `com.example.plugin`) utilisée pour l'unicité et la signature de code |
| Publié | 1990s (NeXTSTEP bundle concept); formalized in Mac OS X 10.0, 2001 |
| Dernière version | Modern Core Foundation / Foundation bundle layout (current macOS) |
| Standard ouvert | Oui · libre de droits |
| Spécification | developer.apple.com |
Conversions BUNDLE
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers BUNDLE.