带助手应用程序的沙盒应用程序

Sandboxed app with Helper app

我正在尝试从沙盒应用程序执行助手应用程序,但它抛出错误 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)
}

我是不是做错了什么,或者在沙盒中是不可能的?

来自沙盒guide

The following app behaviors are incompatible with App Sandbox:

Use of Authorization Services

即使您没有被沙盒化,您编写的代码也会失败,因为 kAuthorizationRightExecute 是请求授权的错误权利。您需要申请 kSMRightBlessPrivilegedHelper.