Информация о версии Платформы Launch Services для OS X v10.5

Этот документ суммирует изменения в Launch Services для OS X v10.5 (Leopard), которые особенно интересны для разработчиков программного обеспечения. Обратите внимание на то, что можно быть в состоянии найти больше информации об этих изменениях в документации разработчика Apple.

Launch Services в OS X v10.5 (Leopard) доступна как компонент платформы защиты Core Services. Это - совместимое с двоичным файлом изменение от Mac OS 10.4, где Launch Services была частью платформы защиты Прикладных служб. Клиенты Launch Services API могут соединиться с платформой Core Services или высокоуровневой платформой зонтика (Прикладные службы, Какао или Углерод).

Содержание:

64-разрядная поддержка приложений

Leopard OS X содержит 64-разрядные версии многих системных платформ, включая Launch Services, включая создание и запуск приложений Какао в 64-разрядном адресном пространстве. 64-разрядная версия Launch Services API отличается от 32-разрядного API во всего одной незначительной подробности: были устранены два поля в структуре LSItemInfoRecord (iconFileName и kindID). Они не использованы и не документированы в 32-разрядном API, и тем самым не были перенесены на следующий период к 64-разрядному API.

Карантин файла

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

Когда Launch Services, API используется для открытия изолированного файла и файла, будет казаться, будет приложением, сценарием или другим типом исполняемого файла, Launch Services выведет на экран предупреждение, чтобы подтвердить, что пользователь понимает, что файл является некоторым приложением. Если файл открыт, карантинные свойства автоматически очищены Launch Services, если у пользователя есть доступ для записи к файлу.

Карантинный словарь свойств является новым именованным атрибутом, доступным с LSCopyItemAttribute или LSCopyItemAttributes функции. Новая строковая константа определяет имя карантинного атрибута свойств:

const CFStringRef kLSItemQuarantineProperties;

Карантинный словарь свойств изменяется с помощью новой функции для установки именованных атрибутов. В Leopard карантинный словарь свойств является единственным устанавливаемым именованным атрибутом.

    OSStatus LSSetItemAttribute(
        const FSRef *  inItem,
        LSRolesMask    inRoles,
        CFStringRef    inAttributeName,
        CFTypeRef      inValue);

Значение карантинного атрибута свойств является a CFDictionaryRef. Словарь может содержать значения для следующих карантинных свойств:

    const CFStringRef kLSQuarantineAgentNameKey;
    const CFStringRef kLSQuarantineAgentBundleIdentifierKey;
    const CFStringRef kLSQuarantineTimeStampKey;
    const CFStringRef kLSQuarantineTypeKey;
    const CFStringRef kLSQuarantineOriginURLKey;
    const CFStringRef kLSQuarantineDataURLKey;

Для получения дополнительной информации о доступе к именованным атрибутам, посмотрите интерфейс LSInfo.h. Дополнительные сведения о карантинных свойствах см. в новом интерфейсном файле LSQuarantine.h. Автоматическая изоляция файла может также быть включена как установка всего процесса с помощью приложения ключ Info.plist (см. Новые Ключи Info.plist).

Списки совместно используемого файла

Список Совместно используемого файла API в новинку для Launch Services в Leopard OS X. Этот API обеспечивает доступ к нескольким видам системной глобальной переменной и персистентным спискам в расчете на пользователя объектов файловой системы, таким как недавние документы и приложения, избранное и элементы входа в систему. Для получения дополнительной информации посмотрите новый интерфейсный файл LSSharedFileList.h.

Открытие приложений с параметрами

LSApplicationParameters структура, представленная в OS X v10.4, содержит argv поле, разработанное для передающих параметров приложению main функция. Эта опция API была отключена в этих 10,4 выпусках, но реализована в Leopard. Если новый порядок подачи заявки создается в результате вызова к LSOpenApplication, LSOpenItemsWithRole или LSOpenURLsWithRole , элементы argv поля передаются основной функции приложения.

Новые ключи Info.plist

Launch Services в Leopard поддерживает несколько новых ключей Info.plist для конфигурирования различных параметров настройки приложения, включая автоматический карантинный режим файла, конфигурацию архитектуры ЦП для повсеместного применения и ранжирование обработчика типа документа. Таблица ниже суммирует значение и использование каждого нового ключа:

Ключ:

LSArchitecturePriority

Тип значения:

Массив строк

Допустимые значения:

PPC, ppc64, i386, x86_64

Примечания:

Этот ключ указывает допустимый набор и предпочтенный порядок выбора доступной исполнимой архитектуры в пакете повсеместного применения. Например, если i386 появится прежде x86_64 в массиве, то на 64-разрядном Intel CPUs, 32-разрядная архитектура будет выбрана, если пользователь не изменит настройки в приложении окно Info в Средстве поиска. Если PPC появится в массиве прежде i386, то на Intel CPUs выполнение Розетты будет предпочтено по собственному выполнению. Используйте LSRequiresNativeExecution ключ, чтобы препятствовать тому, чтобы приложение выполнилось в среде Розетты.

Ключ:

LSMinimumSystemVersionByArchitecture

Тип значения:

Словарь

Допустимые ключи:

PPC, ppc64, i386, x86_64

Допустимые значения:

Строка версии выпуска OS X, такой как «10,5» или «10.4.2»

Примечания:

Этот ключ управляет минимальным числом версии системы, которому разрешают выполнить каждую архитектуру в пакете повсеместного применения. Например, если значение ppc64 ключа будет «10.5.2», то выпуски до 10.5.2 не позволят приложению запускать в 64-разрядном режиме на PowerPC CPUs.

Ключ:

LSFileQuarantineEnabled

Тип значения:

Булевская переменная

Примечания:

Когда значение этого ключа true, все файлы, создаваемые порядком подачи заявки, будут изолированы OS X. Три карантинных свойства могут быть присвоены автоматически: метка времени (текущее время), и имя приложения и идентификатор пакета (kLSQuarantineTimeStampKey, kLSQuarantineAgentNameKey, kLSQuarantineAgentBundleIdentifierKey). OS X не имеет достаточной информации для присвоения нескольких важных карантинных свойств, таких как источник URL; используйте API для установки дополнительных свойств. Автоматический карантин полезен, когда приложение не имеет полного контроля над файлами, это создает, например, если это размещает внешне разработанные плагины.

Ключ:

LSHandlerRank

Тип значения:

Строка

Допустимые значения:

Владелец, значение по умолчанию, альтернатива, ни один

Примечания:

Ранжирование обработчика является механизмом для подстройки документа обязательные правила выбора в Launch Services. LSHandlerRank ключ появляется словари типа документа под CFBundleDocumentTypes Ключ Info.plist. Если ключ не присутствует, требование типа документа имеет разряд Default. Укажите разряд Owner когда Ваше приложение является основным обработчиком для пользовательского типа документа. Launch Services предпочтет тип документа Owner Default требования типа документа. Разряд Alternate когда приложение является так называемым «вторичным» редактором или средством просмотра типа документа, используется. Например, TextEdit в Leopard является Альтернативным редактором документов Microsoft Word, потому что это не поддерживает все параметры форматирования, предоставленные в Word. Если Microsoft Word будет установлен, то Launch Services предпочтет его как обработчик по умолчанию при открытии документов Word. Наконец, используйте не, оценивают Ни один, если Ваше приложение никогда не должно выбираться при открытии типа ассоциированного документа, но хочет принять отбрасывания этого типа документа на значок приложения.