使用沙箱发送AppleEvent失败

swift nsapplescript

228 观看

1回复

26120 作者的声誉

我尝试在Calendar.app中显示一个元素,以便激活日历并突出显示相应的事件。我知道该怎么做,但是一旦打开沙箱,我就可以

日历出现错误:发生权限冲突。

我的代码就是这样(甚至不尝试显示事件,而只是阅读一个日历):

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
  func applicationDidFinishLaunching(aNotification: NSNotification) {
    let source = "tell application \"iCal\"\n set theCalendar to first calendar whose name = \"test\"\nend tell"
    let scriptObject = NSAppleScript(source: source)
    var errorDict: NSDictionary? = nil
    _ = scriptObject!.executeAndReturnError(&errorDict)
    print (errorDict)
  }
}

我的权利看起来像这样:

<dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
  <key>com.apple.security.scripting-targets</key>
  <dict>
    <key>com.apple.ical</key>
    <array>
      <string>com.apple.ical.read</string>
    </array>
  </dict>
</dict>

我也尝试使用脚本桥接,但是也失败了(信息较少,但可能是相同的原因)。

作者: qwerty_so 的来源 发布者: 2016 年 6 月 13 日

回应 (1)


1

177876 作者的声誉

决定

com.apple.security.scripting-targetsCalendar.app 中的授权失败似乎是一个错误(甚至tell application "Calendar"在脚本中使用)。

但是,全局临时异常有效:

<key>com.apple.security.temporary-exception.apple-events</key>
<array>
  <string>com.apple.ical</string>
</array>
作者: vadian 发布者: 15.06.2016 09:25
32x32