2012-09-08 5 views
1

모두,샌드 박스를 배포 할 때 앱을 다시 실행할 수 있습니까?

내 앱을 다시 실행해야합니다. Google 검색 및 제안 :
1. https://gist.github.com/2204627
은 (는) 직접 lsboxd 메시지를 받았습니다.

2. http://13bold.com/tutorials/relaunching-your-application/
이 LSOpenFromURLSpec있어() -10827를 반환 ... 메시지

둘은 샌드 박스 관련이 있습니다.

알고 싶습니다. 배포 된 샌드 박스로 내 앱을 다시 시작할 수있는 방법이 있습니까? 감사!

+0

"샌드 박스가 배포 될 때"란 무엇을 의미합니까? – TheAmateurProgrammer

+0

@theAmateurProgrammer는 내 앱이 샌드 박스임을 의미한다고 말합니다. – Terry

+0

앱을 컴파일 할 때 샌드 박스 처리해야합니다. 왜 앱을 다시 시작해야합니까? – TheAmateurProgrammer

답변

6

모래 상자가있는 응용 프로그램은 NSWorkspacelaunchAppWithBundleIdentifier:을 사용하여 새 복사본을 시작할 수 있습니다. NSWorkspaceLaunchAsync, NSWorkspaceLaunchNewInstance을 전달하여 앱을 실행하는 새 프로세스를 비동기 적으로 생성하고, 호출이 반환 된 후에 현재 프로세스를 종료합니다 (또는 NSApplicationWillTerminateNotification에 응답하기위한 호출의 일부로 호출).

+0

launchAppWithBundleIdentifier : ... 메소드를 "com.apple.dock"으로 간단하게 시도했지만 작동하는 것처럼 보였지만 여전히 콘솔에 "lsboxd : @AE ..."가 있습니다. 샌드 박스 제한이 충돌하는지 여부는 확실하지 않습니다. – Terry

+0

@Terry - 어쩌면 내가 잘못 이해했기 때문에 "com.apple.dock"을 사용해서는 안됩니다. 이것은 샌드 박스에서 실행할 때 자신의 앱을 다시 시작하는 방법입니다. 그 방법은 더 이상 작동하지 않을 수도 있습니다. 샌드 박스는 변덕스럽고 변덕 스럽기 때문에 가능하면 피해야합니다. 이 방법은 개발자 포럼에있는 스레드에서 가져온 것으로, 올해 초에 "launchAppWithBundleIdentifier"를 검색하여 Apple 엔지니어가 프로세스를 확인합니다. 해당 스레드에서 더 이상 작동하지 않는 게시물 일 경우 동일한 Apple 엔지니어가 응답합니다. – CRD

관련 문제