Пакет (macOS) - Bundle (macOS)

Связка
Расширение имени файла
.app, .framework, .kext, .plugin, .docset, .xpc, .qlgenerator, .component, .saver, .mdimporter и т. д.
Единый идентификатор типа (UTI)com.apple.bundle
Контейнер дляисполняемый двоичный файл, метаданные, другие пакеты, любой другой файл, необходимый для запуска приложения.

В Следующий шаг, ОТКРЫТЬ, GNUstep, и их прямые потомки macOS и iOS, а связка это файл каталог с определенной структурой и расширением файла, что позволяет группировать связанные файлы в концептуально единый элемент.

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

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

Доступ к пакетам осуществляется программно с помощью NSBundle класс в Какао, NeXTSTEP и GNUstep's Фонд фреймворки и с CFBundle в Основной фундамент. Пакеты часто включают Информация.список файл для метаданных.[1] В Единый идентификатор типа (UTI) для пакета Apple com.apple.bundle.[2]

Пакеты приложений

Пакет приложений
Расширение имени файла
.приложение
Единый идентификатор типа (UTI)com.apple.application-bundle
Тип форматапрограммное обеспечение
Контейнер дляисполняемый двоичный файл
Расширен сСвязка

Пакеты приложений - это иерархии каталогов, причем имя каталога верхнего уровня заканчивается на .приложение расширение. В пакете приложений первый каталог в пакете под каталогом верхнего уровня обычно называется Содержание. В Содержание обычно есть другой каталог (называемый MacOS на Mac), который содержит исполняемый код приложения. В рамках Содержание папка обычно также есть каталог с именем Ресурсы, который содержит ресурсы приложения.

Среди прочего, Ресурсы папка содержит локализованные версии приложения файлы пера.

Другие общие подкаталоги включают Плагины, Каркасы, и Общие рамки. В Каркасы Каталог содержит фреймворки, используемые приложением, и используются, даже если в системе существует другая версия фреймворка. В Общие рамки каталог содержит фреймворки, которые могут использоваться как приложением, которое их содержит, так и другими приложениями; они используются только в том случае, если более новой версии не существует в другом месте в системе. Плагины содержит расширяемый код, используемый приложением.

По умолчанию Finder отображает пакеты приложений, которые также можно назвать пакеты, как непрозрачные файлы без базовой структуры; содержимое пакета может быть показано с помощью «Показать содержимое пакета» контекстное меню предмет.

GNUstep по умолчанию использует имя приложения для именования папки, содержащей код приложения. Альтернативный вариант - назвать их по архитектуре компьютера и ОС, для которой предназначен код, чтобы сформировать толстый двоичный файл, поэтому приложение можно открыть на многих платформах.[3][4]

Пакеты фреймворка macOS

Пакет фреймворка
Расширение имени файла
.рамки
Единый идентификатор типа (UTI)com.apple.framework
Расширен ссвязка

Фреймворки macOS также хранятся в виде пакетов;[5] каталог верхнего уровня пакета фреймворка имеет имя, которое является именем фреймворка, за которым следует расширение .рамки. В каталоге верхнего уровня находится Версии каталог с подкаталогами для одной или нескольких версий платформы, каждый подкаталог, содержащий код динамической библиотеки для платформы, в файле, имя которого совпадает с именем платформы, возможно, с Заголовки папка, содержащая файлы заголовков для фреймворка и других подпапок, таких как Ресурсы. В Версии каталог также содержит символическую ссылку Текущий в каталог с текущей версией фреймворка. В каталоге верхнего уровня есть символические ссылки на содержимое Версии / Текущие.[6]

В Finder отображает пакеты фреймворка как каталоги, а не как непрозрачные файлы.

Хотя GNUstep использует фреймворки, они обычно не хранятся в виде пакетов. Это связано с тем, что полная семантика загрузки фреймворка считается слишком чуждой для других платформ.[7]

Загружаемые пакеты

Загружаемые пакеты - это пакеты, которые содержат код, который может быть загружен во время выполнения.[8] Загружаемые пакеты обычно имеют расширение .пучок, и чаще всего используются как плагины. В macOS есть способ загружать пакеты даже в приложения, которые их не поддерживают, что позволяет сторонним разработчикам взламывать популярные приложения, такие как Сафари[9] и Apple Mail.[10][11] Функция, унаследованная от NeXTSTEP, GNUstep имеет - [NSBundle PrincipalClass] интерфейс тоже.

По умолчанию Finder отображает загружаемые пакеты, которые также можно назвать пакеты, как непрозрачные файлы без базовой структуры; содержимое пакета может быть показано с помощью «Показать содержимое пакета» контекстное меню предмет.

Другие форматы пакетов

Существует множество сторонних приложений для macOS, которые используют собственный формат пакетов (например, Конфета, шоколадный батончик .iContainer, Диафрагма .aplibrary, VMware Fusion .vmwarevm, так далее.).

.lproj

An .lproj файл - это пакет, содержащий локализация файлы для программного обеспечения OpenStep, macOS или GNUstep. Обычно он содержит .nib файлы для данного языка вместе с .strings файлы и изображения при необходимости (например, Прочти меня или файлы лицензии). Эти локализованные файлы используются разработчиками программы установки для настройки пакетов установки. Они также включены в комплект приложения.

Смотрите также

Рекомендации

  1. ^ «Список информационных ресурсов - набор ресурсов». Документация для разработчиков Apple.
  2. ^ «Объявленные системой унифицированные идентификаторы типа». Справочник по унифицированным идентификаторам типов. Apple Inc. Получено 2012-06-10.
  3. ^ "PackagingDrafts / GNUstep". Вики проекта Fedora.
  4. ^ "gnustep / tools-make: README.Packaging". GitHub.
  5. ^ "Фреймворк". developer.apple.com. Получено 2020-10-06.
  6. ^ «Анатомия пакетов каркасов». Apple Inc.. Получено 2011-09-03.
  7. ^ «Пользовательские FAQ». GNUstep.
  8. ^ Темы программирования загрузки кода для какао: о загружаемых пакетах
  9. ^ "Pimp My Safari: плагины". Архивировано из оригинал 31 октября 2007 г.
  10. ^ «Плагины и инструменты Apple Mail».
  11. ^ «Hawk Wings - плагины для Apple Mail». Архивировано из оригинал 31 августа 2007 г.

внешняя ссылка