Пакет (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
файлы и изображения при необходимости (например, Прочти меня или файлы лицензии). Эти локализованные файлы используются разработчиками программы установки для настройки пакетов установки. Они также включены в комплект приложения.
Смотрите также
- Каталог приложений - в ОС RISC аналог пакета приложений
- AppImage - Приложение Linux, использующее аналогичные принципы
Рекомендации
- ^ «Список информационных ресурсов - набор ресурсов». Документация для разработчиков Apple.
- ^ «Объявленные системой унифицированные идентификаторы типа». Справочник по унифицированным идентификаторам типов. Apple Inc. Получено 2012-06-10.
- ^ "PackagingDrafts / GNUstep". Вики проекта Fedora.
- ^ "gnustep / tools-make: README.Packaging". GitHub.
- ^ "Фреймворк". developer.apple.com. Получено 2020-10-06.
- ^ «Анатомия пакетов каркасов». Apple Inc.. Получено 2011-09-03.
- ^ «Пользовательские FAQ». GNUstep.
- ^ Темы программирования загрузки кода для какао: о загружаемых пакетах
- ^ "Pimp My Safari: плагины". Архивировано из оригинал 31 октября 2007 г.
- ^ «Плагины и инструменты Apple Mail».
- ^ «Hawk Wings - плагины для Apple Mail». Архивировано из оригинал 31 августа 2007 г.
внешняя ссылка
- Руководство по программированию пакетов в Apple Developer Connection
- Документация NSBundle из проекта GNUstep
- Утконос - инструмент для создания пакетов приложений вокруг скриптов
- Детали расширения файла