Пакет (macOS)


В NeXTSTEP , OPENSTEP и их прямых потомках macOS , iOS , iPadOS , tvOS и watchOS , а также в GNUstep пакет представляет собой файловый каталог с определенной структурой и расширением файла, позволяющий группировать связанные файлы вместе как концептуально единый элемент. .

Примеры пакетов, содержащих исполняемый код, включают приложения , платформы и плагины . Пакет такого типа обычно содержит один файл, представляющий исполняемый код, и файлы, представляющие такие ресурсы, как перья , шаблоны, изображения, звуки и другие медиафайлы. В некоторых других системах, таких как Microsoft Windows , эти ресурсы обычно включаются непосредственно в сам исполняемый файл во время компиляции. На старых Macintosh используется аналогичный метод, при котором в вилку ресурса файла можно добавлять дополнительные метаданные . Аналогичными по концепции являются каталоги приложений , используемые в ОС RISC и на рабочем столе ROX .

Примеры пакетов, не содержащих исполняемый код, включают пакеты документов ( документы iWork ) и медиа-библиотеки ( библиотека iPhoto ).

Доступ к пакетам осуществляется программно с помощью NSBundleкласса в платформах Cocoa , NeXTSTEP и GNUstep Foundation , а также с CFBundleпомощью Core Foundation . Пакеты часто включают в себя файл Info. plist- файл для метаданных. [1] Единый идентификатор типа (UTI) для пакета Apple — . [2]com.apple.bundle

Пакеты приложений представляют собой иерархии каталогов, в которых имя каталога верхнего уровня заканчивается расширением .app.

В пакете приложений macOS первый каталог в пакете под каталогом верхнего уровня обычно называется Contents. Внутри Contentsобычно имеется еще один каталог, называемый MacOS, который содержит исполняемый код приложения. В Contentsпапке содержится файл с именем Info.plist, который содержит информацию о приложении, такую ​​как имя поставщика программного обеспечения, имена файлов, содержащих исполняемый файл и значок приложения, версию приложения, запрошенные разрешения и т. д. В папке обычно также находится Contentsфайл каталог с именем Resources, который содержит ресурсы приложения. [3]