0

カレンダーがアクティブになり、適切なイベントが強調表示されるように、Calendar.app に要素を表示しようとしました。その方法は知っていますが、サンドボックスがオンになると、

カレンダーでエラーが発生しました: 権限違反が発生しました。

私のコードは単純にこれです(イベントを表示しようとするのではなく、1つのカレンダーを読み取るだけです):

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>

スクリプト ブリッジも試しましたが、これも失敗します (情報は少ないですが、おそらく同じ理由で)。

4

1 に答える 1

1

Calendar.appでの資格の失敗はcom.apple.security.scripting-targetsバグのようです (tell application "Calendar"スクリプトで使用していても)。

ただし、グローバル一時例外は機能します。

<key>com.apple.security.temporary-exception.apple-events</key>
<array>
  <string>com.apple.ical</string>
</array>
于 2016-06-15T09:25:12.353 に答える