2016-06-13 14 views
0

캘린더가 활성화되고 적절한 이벤트가 강조 표시되도록 Calendar.app에 요소를 표시하려고합니다. 나는 그 작업을 수행하는 방법을 알고 있지만 샌드 박스가되면, 난 그냥샌드 박스로 AppleEvent 보내기가 실패합니다.

Calendar got an error: A privilege violation occurred.

내 코드를 간단하게이 (심지어 이벤트를 보여 주려하지하지만 단 하나의 달력을 읽고)입니다 얻을 :

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

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> 
+0

와우. 나는 빠른 시험을 보았으나, 나의 축소 된 예를 통해서만, 그것은 그 트릭을하는 것처럼 보인다. 지금 풀 버전으로 시도해 보겠습니다. –

+0

매우 근사합니다. 특히 애플의 소위 "지원"이 그 방향으로 나를 가리 키지 않았지만 3 년 넘게 나의 지원 요청에 굶주 리게했다. 대단히 감사합니다 !! –