Изолированное приложение с приложением Helper

Я пытаюсь запустить вспомогательное приложение из изолированного приложения, но выдает ошибку errAuthorizationDenied (-60005), в качестве примера я использую Apple SMJobBless. В настоящее время у меня есть это

var authItem: AuthorizationItem = AuthorizationItem(name: kAuthorizationRightExecute, valueLength: 0, value: nil, flags: 0)
var authRights: AuthorizationRights = AuthorizationRights(count: 1, items: &authItem)
let authFlags: AuthorizationFlags = AuthorizationFlags.ExtendRights
var result = false
var authRef: AuthorizationRef = nil

let status: OSStatus = AuthorizationCreate(&authRights, nil, authFlags, &authRef)
if status == errAuthorizationSuccess {
    result = SMJobBless(kSMDomainSystemLaunchd, "**helperBundleIdentifier**", authRef, nil)
}

Я делаю что-то не так или это невозможно в песочнице?

2 ответа

Решение

Из руководства по песочнице

Следующее поведение приложения несовместимо с изолированной программной средой приложения:

Использование услуг авторизации

Даже если вы не были изолированы от песочницы, код, который вы написали, выйдет из строя, потому что kAuthorizationRightExecuteзапрашивать авторизацию - это неправильное право. Вам нужно запроситьkSMRightBlessPrivilegedHelper.

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