Il me semble que les mots package et bundle sont utilisés de manière interchangeable dans la documentation d'Apple pour désigner un dossier spécial du système de fichiers que l'utilisateur voit comme un document (iWork Pages document) ou une application (Pages.app). Je sais que l'on peut voir le contenu d'un paquet ou d'une liasse en faisant un clic droit sur l'un de ces fichiers spéciaux et en cliquant sur Show Package Contents
. Ce qui me suggère que les deux sont un type de paquet. Un paquet est-il donc un type particulier de paquet ?
Réponses
Trop de publicités?En Guide de programmation de l'offre groupée d'Apple
Bien que l'on fasse parfois référence de manière interchangeable aux bundles et aux packages, ils représentent en fait des concepts très distincts :
Un paquet est un répertoire que le Finder présente à l'utilisateur comme s'il s'agissait d'un seul fichier.
Un bundle est un répertoire avec une structure hiérarchique standardisée qui contient le code exécutable et les ressources utilisées par ce code.
Aussi
Le Finder considère qu'un répertoire est un paquet si l'une des conditions suivantes est vraie :
Le répertoire a une extension de nom de fichier connue : .app, .bundle, .framework, .plugin, .kext, etc.
Le répertoire possède une extension qui, selon une autre application, représente un type de paquet ; voir Paquets de documents.
Le répertoire a son bit de paquetage activé.
Dans le code avec les bundles et les packages sont manipulés par la même classe NSBundle
Un paquet et une liasse ont/ont une structure similaire. Un paquet est un "fichier" qui est exploité par l'installateur OSX. De nos jours, les paquets ont été aplatis dans des archives xar. Les paquets sont également des "fichiers" créés par certaines applications Apple, où le fichier est en fait un répertoire contenant plusieurs fichiers de support. Un paquetage contient du code exécutable, une application (.app) est un paquetage. Les plugins sont également des bundles.