2011-09-05 6 views
12

코코아 : 다른 응용 프로그램을 시작하기위한 샌드 박스 권한

 [[NSWorkspace sharedWorkspace] launchApplication:path]; 

내 샌드 박스 응용 프로그램에서 콘솔에서이 오류가 발생합니다.

9/5/11 12 : 23 : 12.462 PM lsboxd : 스폰하기를 거부했습니다. < PATH REDACTED> 21383 용 - 이유 -10826

9/5/11 12 : 23 : 12.463 오후 응용 프로그램 : spawn_via_launchd()가 실패했습니다. errno = 54 label = [0x0-0x1994993] .MYApp path = < PATH REDACTED> flags = 0

9/5/11 12 : 23 : 12.464 PM 응용 프로그램 : LSOpenFromURLSpec()이 응용 프로그램 <에 대해 -10810을 반환했습니다. PATH REDACTED> (null).

즉, 분명히 응용 프로그램 1이 2를 실행해야한다고 생각하지 않는 "Launch Services Sandbox Daemon"(lsboxd)에 의해 차단되고 있습니다.

레코드 10826은 " 사용자에게 응용 프로그램을 시작할 수있는 권한이 없습니다. "그리고 10810이"알 수없는 오류가 발생했습니다. "

이 사례에 대한 자격을 아는 사람이 있습니까?

샌드 박스 응용 프로그램에서 다른 응용 프로그램을 시작하려면 어떻게해야합니까? (AppleScript는 말하지 마십시오. 특히 샌드 박스 응용 프로그램 또는 XPC 서비스에서 호출 할 때 작동하지 않는 악몽입니다). 이상적인 방법은 샌드 박스 내에서 (심각하게 불구가 된) NSWorkspace를 사용하는 것입니다.

답변

3

launchApplication:의 매개 변수는 경로가 아닌 응용 프로그램의 이름이 (즉, @"Safari"과 같은)입니다. 그런 식으로, 그것은 나를 위해 특별한 자격없이 일하고있다. PowerBox를 사용하지 않고 샌드 박스 앱에서 임의의 경로로 앱을 시작할 수 있다고 생각하지 않습니다.

+0

경로/이름은 선택 사항입니다. 어느 쪽이든 작동합니다. 주요 문제는 출시를 방해하는 샌드 박스와이를 둘러싼 권한이 없다는 것입니다. 포럼에 내가 모은 것에서는 실제로 자격이 없다. 다른 해결책이 없다면 이것이 주요한 질문입니다. – SG1

+1

당신은 경로/이름에 대해 옳은 것 같았습니다. 방금 샌드 박스 응용 프로그램에서이 방법으로 응용 프로그램을 시작했지만 응용 프로그램이/응용 프로그램에있는 한 제대로 작동하는 것 같습니다 (~/응용 프로그램도 작동하지만이 시도하지 않은 것으로 가정합니다). – omz