2015-01-26 2 views
3

샌드 박스가있는 Mac App Store 앱에 AppleScript 지원을 추가하고 있습니다.AppleScript에서 보낸 파일에 샌드 박스 응용 프로그램 액세스 권한을 부여 할 수 있습니까?

add file at path "/path/to/some/file/on.disk" 

나는 유형 file과 같이 명령의 매개 변수를 지정, 그래서를 통해 제공 : 그래서처럼, 내가 쓴 명령을 사용하여, 사용자가 스크립트를 통해 응용 프로그램에 파일을 추가 할 수 있도록하고 싶습니다 내 응용 프로그램은 NSURL으로 표시되며 디버거에서 파일 URL의 경로 (po url.path)를 볼 수 있습니다.

Could not open() the item

I :

<!-- Contained by a suite --> 
<command name="add file at path" code="ABCDABCD"> 
    <direct-parameter description="A file to add to the app" type="file" /> 
</command> 

나는이 파일에 대한 보안 범위의 북마크를 만들려고 할 때, 나는 오류가 발생 :

sdef 파일에있는 명령의 정의입니다 앱의 후속 실행에서 파일을 읽을 수 있어야합니다. 따라서 북마크를 만듭니다. 이 책갈피 - 생성 코드 :

NSData *fileBookmark = [url bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope 
        includingResourceValuesForKeys:nil 
             relativeToURL:nil 
               error:&error]; 

나는 변화를하지 않았다, [url start(stop)AccessingSecurityScopedResource]와 코드를 둘러싼했습니다.

업데이트

또한 앱이 파일의 내용을 읽고, 또는 응용 프로그램의 컨테이너에 복사 할 수없는 것으로 확인되었습니다. 스크립트가 적용된 앱의 경로는 제외하고 이 아니며 파일에 대한 액세스는입니다.

업데이트이 합니다 (URL에서 파일이 나는 또한 ~/Application Scripts/bundleid (NSApplicationScriptsDirectory) 디렉토리에 스크립트를 배치하고, 내 코코아 코드 내부 NSUserScriptTask에서 실행하고, 그 같은 결과를 얻었다 시도

입니다

2 여전히 읽을 수 없다).

답변

2

글쎄, 문제는 내 애플 리케이션과 관련이 없다는 것을 알았지 만, 애플 스크립트를 사용하여 문제를 호출했다. 당신은 같은 파일 핸들이나 별명을 보낼 필요가 다음 방금 경로 (그렇지 않으면 POSIX 이상)를 제공

add file at path posix file "/path/to/some/file/on.disk" 
add file at path "path:to:some:file:on.disk" as alias 

, 그것은 여전히 ​​NSURL, 따라서 나의 혼란으로 통해 제공되지만 구멍을 펀칭하지 않고 샌드 박스에서.

이 동작은 명확하지 않으며 문제를 해결하기가 어렵습니다. 따라서 filed a Radar입니다.