Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка ServiceManagement.h

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка ServiceManagement.h

Основной заголовок для платформы ServiceManagement. Этот заголовок предоставляет поддержку для загрузки и разгрузки launchd задания и читающие и управляющие словари задания из приложения.

Включенные заголовки

  • <ServiceManagement/SMErrors.h>

  • <ServiceManagement/SMLoginItem.h>

  • <CoreFoundation/CoreFoundation.h>

  • <Security/Authorization.h>

Функции

  • Скопируйте словари должностной инструкции для всех заданий в данном домене.

    Объявление

    Swift

    func SMCopyAllJobDictionaries(_ domain: CFString!) -> Unmanaged<CFArray>!

    Objective C

    CFArrayRef SMCopyAllJobDictionaries ( CFStringRef domain );

    Параметры

    domain

    Желаемый домен (например. kSMDomainSystemLaunchd).

    Возвращаемое значение

    Новый массив, содержащий все словари задания или NULL, если произошла ошибка. Должен быть выпущен вызывающей стороной.

    Обсуждение

    Если ошибка произошла, SMCopyAllJobDictionaries возвращает массив словарей должностной инструкции для всех заданий в данном домене или NULL.

    Оператор импорта

    Objective C

    @import ServiceManagement;

    Swift

    import ServiceManagement

    Доступность

    Доступный в OS X v10.6 и позже.

    Осуждаемый в OS X v10.10.

  • Скопируйте словарь должностной инструкции для данной метки задания.

    Объявление

    Swift

    func SMJobCopyDictionary(_ domain: CFString!, _ jobLabel: CFString!) -> Unmanaged<CFDictionary>!

    Objective C

    CFDictionaryRef SMJobCopyDictionary ( CFStringRef domain, CFStringRef jobLabel );

    Параметры

    domain

    Домен задания (например. kSMDomainSystemLaunchd).

    jobLabel

    Метка для задания для копирования.

    Возвращаемое значение

    Новый словарь, описывающий задание или NULL, если не могло бы быть найдено задание. Должен быть выпущен вызывающей стороной.

    Обсуждение

    SMJobCopyDictionary возвращает копию словаря должностной инструкции для данной метки задания или NULL, если никакое задание с данной меткой не было найдено, или ошибка произошла.

    Оператор импорта

    Objective C

    @import ServiceManagement;

    Swift

    import ServiceManagement

    Доступность

    Доступный в OS X v10.6 и позже.

    Осуждаемый в OS X v10.10.

  • Удаляет задание с данной меткой от указанного домена.

    Объявление

    Swift

    func SMJobRemove(_ domain: CFString!, _ jobLabel: CFString!, _ auth: AuthorizationRef, _ wait: Boolean, _ outError: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Boolean

    Objective C

    Boolean SMJobRemove ( CFStringRef domain, CFStringRef jobLabel, AuthorizationRef auth, Boolean wait, CFErrorRef *outError );

    Параметры

    domain

    Домен задания (например. kSMDomainSystemLaunchd).

    jobLabel

    Метка для задания для удаления.

    auth

    AuthorizationRef, содержащий kSMRightModifySystemDaemons право, если данный домен kSMDomainSystemLaunchd.

    wait

    Передайте истину для блокирования, пока не вышел процесс для данного задания.

    outError

    Если никакая ошибка не произошла, выходная ссылка на CFErrorRef, описывающий определенную ошибку, встретилась при представлении словаря задания, или NULL. Это - ответственность приложения выпустить ошибочную ссылку. Этим параметром может быть NULL.

    Возвращаемое значение

    истина, если задание было удалено успешно, иначе ложь.

    Обсуждение

    SMJobSubmit удаляет задание, указанное меткой от домена. Если задание будет в настоящее время работать, то оно условно блокирует, пока рабочий процесс не вышел.

    Оператор импорта

    Objective C

    @import ServiceManagement;

    Swift

    import ServiceManagement

    Доступность

    Доступный в OS X v10.6 и позже.

    Осуждаемый в OS X v10.10.

  • Представляет данное задание указанному домену.

    Объявление

    Swift

    func SMJobSubmit(_ domain: CFString!, _ job: CFDictionary!, _ auth: AuthorizationRef, _ outError: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Boolean

    Objective C

    Boolean SMJobSubmit ( CFStringRef domain, CFDictionaryRef job, AuthorizationRef auth, CFErrorRef *outError );

    Параметры

    domain

    Домен задания (например. kSMDomainSystemLaunchd).

    job

    Словарь, описывающий задание.

    auth

    AuthorizationRef, содержащий kSMRightModifySystemDaemons право, если данный домен kSMDomainSystemLaunchd.

    outError

    Если никакая ошибка не произошла, выходная ссылка на CFErrorRef, описывающий определенную ошибку, встретилась при представлении словаря задания, или NULL. Это - ответственность приложения выпустить ошибочную ссылку. Этим параметром может быть NULL.

    Возвращаемое значение

    истина, если задание было представлено успешно, иначе ложь.

    Обсуждение

    SMJobSubmit представляет данное задание указанному домену.

    Оператор импорта

    Objective C

    @import ServiceManagement;

    Swift

    import ServiceManagement

    Доступность

    Доступный в OS X v10.6 и позже.

    Осуждаемый в OS X v10.10.

  • Представляет исполнимую программу для данной метки как launchd задание.

    Объявление

    Swift

    func SMJobBless(_ domain: CFString!, _ executableLabel: CFString!, _ auth: AuthorizationRef, _ outError: UnsafeMutablePointer<Unmanaged<CFError>?>) -> Boolean

    Objective C

    Boolean SMJobBless ( CFStringRef domain, CFStringRef executableLabel, AuthorizationRef auth, CFErrorRef *outError );

    Параметры

    domain

    Домен задания. Только kSMDomainSystemLaunchd поддерживается.

    executableLabel

    Метка привилегированной исполнимой программы для установки. Эта метка должна быть одним из ключей, найденных в словаре SMPrivilegedExecutables в Info.plist приложения.

    auth

    Ссылка авторизации, содержащая kSMRightBlessPrivilegedHelper право.

    outError

    Выходная ссылка на CFErrorRef, описывающий определенную ошибку, встретилась при представлении исполнимого инструмента или NULL в случае успеха. Это - ответственность приложения выпустить ошибочную ссылку. Этим параметром может быть NULL.

    Возвращаемое значение

    Истина, если задание было успешно представлено, иначе ложь.

    Обсуждение

    SMJobBless представляет исполнимую программу для данной метки как launchd задание. Эта функция устраняет потребность в setuid помощнике, вызванном через AuthorizationExecuteWithPrivileges () для установки launchd plist.

    Если задание уже установлено, успех возвращается.

    Для использования этой функции, следующие требования должны быть удовлетворены:

    1. Вызывающее приложение и целевой исполнимый инструмент должны оба быть подписаны.

    2. Info.plist вызывающего приложения должен включать словарь «SMPrivilegedExecutables» строк. Каждая строка является текстовым представлением требования подписывания кода, используемого, чтобы определить, принадлежит ли приложению привилегированный инструмент, один раз установленный (т.е. для последующих версий для обновления установленной версии).

    Каждый ключ SMPrivilegedExecutables является меткой обратного DNS для инструмента помощника (должно быть глобально уникальным).

    1. Инструмент помощника должен иметь встроенный Info.plist, содержащий массив «SMAuthorizedClients» строк. Каждая строка является текстовым представлением требования подписывания кода, описывающего клиент, которому разрешают добавить и демонтировать инструмент.

    2. Инструмент помощника должен иметь встроенный launchd plist. Единственный требуемый ключ в этом plist является ключом Label. Когда launchd plist будет извлечен и записан в диск, ключ для ProgramArguments будет установлен к массиву 1 элемента, указывающего на стандартное расположение. Вы не можете указать свои собственные аргументы программы, не полагайтесь на пользовательские параметры командной строки, передаваемые Вашему инструменту. Передайте любые параметры через IPC.

    3. Инструмент помощника должен находиться в каталоге Contents/Library/LaunchServices в комплекте приложений, и его имя должно быть его launchd меткой задания. Таким образом, если Ваша launchd метка задания «com.apple. Mail.helper», это должно быть именем инструмента в Вашем комплекте приложений.

    Оператор импорта

    Objective C

    @import ServiceManagement;

    Swift

    import ServiceManagement

    Доступность

    Доступный в OS X v10.6 и позже.

Константы

Посмотрите раздел Overview выше для документации уровня заголовка.

  • Объявление

    Objective C

    #define kSMRightBlessPrivilegedHelper "com.apple.ServiceManagement.blesshelper" #define kSMRightModifySystemDaemons "com.apple.ServiceManagement.daemons.modify"

    Константы

    • kSMRightBlessPrivilegedHelper

      kSMRightBlessPrivilegedHelper

      Ключ прав авторизации для благословения и установки привилегированного инструмента помощника.

      Доступный в OS X v10.6 и позже.

    • kSMRightModifySystemDaemons

      kSMRightModifySystemDaemons

      Ключ прав авторизации для изменения системных демонов.

      Доступный в OS X v10.6 и позже.

  • Объявление

    Swift

    let kSMDomainSystemLaunchd: CFString! let kSMDomainUserLaunchd: CFString!

    Objective C

    extern const CFStringRef kSMDomainSystemLaunchd; extern const CFStringRef kSMDomainUserLaunchd; extern const CFStringRef kSMInfoKeyAuthorizedClients; /* "SMAuthorizedClients" */ extern const CFStringRef kSMInfoKeyPrivilegedExecutables; /* "SMPrivilegedExecutables" */

    Константы

    • kSMDomainSystemLaunchd

      kSMDomainSystemLaunchd

      Системный уровень launchd домен.

      Доступный в OS X v10.6 и позже.

    • kSMDomainUserLaunchd

      kSMDomainUserLaunchd

      Пользовательский уровень launchd домен.

      Доступный в OS X v10.6 и позже.

    • kSMInfoKeyAuthorizedClients

      kSMInfoKeyAuthorizedClients

      Авторизованный клиентский ключ списка свойств

      Доступный в OS X v10.6 через OS X v10.9.

    • kSMInfoKeyPrivilegedExecutables

      kSMInfoKeyPrivilegedExecutables

      Привилегированный исполнимый ключ списка свойств

      Доступный в OS X v10.6 через OS X v10.9.