Пакет (macOS)

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

В NeXTSTEP, OPENSTEP, GNUstep и их прямых потомках macOS и iOS, пакет bundle - это файл , каталог с определенной структурой и расширением файла, что позволяет группировать связанные файлы в виде концептуально единый элемент.

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

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

Программный доступ к пакетам осуществляется с помощью класса NSBundleв структурах Cocoa, NeXTSTEP и GNUstep Foundation, а также с помощью CFBundleв Core Foundation. Пакеты часто включают файл Info. plist для метаданных. Uniform Type Identifier (UTI) для пакета Apple - это com.apple.bundle.

Содержание

  • 1 Пакеты приложений
  • 2 пакета платформы macOS
  • 3 Загружаемые пакеты
  • 4 Другие форматы пакетов
  • 5.lproj
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки

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

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

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

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

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

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

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

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

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

Также хранятся фреймворки macOS как связки; каталог верхнего уровня пакета фреймворка имеет имя, которое является именем фреймворка, за которым следует расширение .framework. В каталоге верхнего уровня находится каталог Versionsс подкаталогами для одной или нескольких версий платформы, каждый подкаталог содержит код динамической библиотеки для платформы в файле, имя которого совпадает с именем структуры, возможно, с папкой Headers, содержащей файлы заголовков для платформы, и другие подпапки, такие как Resources. Каталог Versionsтакже содержит символическую ссылку Currentна каталог для текущей версии платформы. В каталоге верхнего уровня есть символические ссылки на содержимое Versions / Current.

. Finder отображает пакеты инфраструктуры в виде каталогов, а не в виде непрозрачных файлов.

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

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

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

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

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

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

.lproj

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

См. Также

  • Application Directory - RISC OS аналог пакета приложений
  • AppImage - приложение Linux, использующее аналогичные принципы

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-13 05:20:54
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте