Отправка AppleEvent не удалась с песочницей

Я пытаюсь показать элемент в 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>

Я также попытался с помощью сценариев моста, но это тоже не удается (с меньшим количеством информации, но, вероятно, по той же причине).

1 ответ

Решение

Отказ от права com.apple.security.scripting-targets в Calendar.app, похоже, ошибка (даже с использованием tell application "Calendar" в сценарии).

Однако глобальное временное исключение работает:

<key>com.apple.security.temporary-exception.apple-events</key>
<array>
  <string>com.apple.ical</string>
</array>
Другие вопросы по тегам