2009-09-16 4 views
0

최소한의 OS X 부팅 스틱 (기본적으로 모든 패키지와 설치 프로그램이 제거 된 Snow Leopard DVD)을 만들었습니다. 필자는 기본 Cocoa 앱 실행 프로그램을 작성하여 응용 프로그램 폴더에있는 다른 응용 프로그램을 실행했습니다 (최소 설치에는 Dock 및 Finder가 없음).LSOpenURLSpec error

나는이 오류 얻을 응용 프로그램을 실행하려고 할 때 :

응용 프로그램 (NULL) 경로 /Applications/MyApp.app

"MyApp.app"는 -10810입니다

LSOpenFromURLSpec() 반환을 위해를 app을 실행하려고했습니다. NSWorkspace의 openFile 메소드와 UNIX의 "open"유틸리티를 사용하여이 작업을 시도했지만, 같은 오류가 발생합니다. 앱을 시작하는 한 가지 방법은 앱의 주요 실행 파일을 실행하는 것입니다. (예 : /Applications/MyApp.app/Contents/MacOS/MyApp). 그러나이 방법은 내가 시작한 응용 프로그램이 종료 될 때까지 실행기를 정지시키기 때문에 불편합니다. 앱을 실행하는 다른 방법 (또는 LSOpenFromURL 오류 수정)

감사

+0

LSOpenFromURLSpec을 호출 할 때 사용하는 코드를 표시하십시오. –

+0

LSOpenURLSpec을 직접 호출하지 않았습니다. [[NSWorkspace sharedWorkspace] openFile : @ "path/to/my/app"]뿐만 아니라 UNIX의 공개 유틸리티를 사용해 보았습니다. 이들 모두 정상적으로 작동하며, 최소한의 OS X에서는 nlt입니다. 환경. 오류를 수정할 수없는 경우 앱을 시작하는 다른 방법이 있습니까? – indragie

답변

0

가 해결 찾았

/Applications/MyApp.app/Contents/MacOS/MyApp>을/dev/null 2>는/dev/null로 &

해당 명령을 사용하여 응용 프로그램을 시작합니다 런처를 멈추지 않고.

0

open은 Finder를 사용하는 Launch Services에 의존합니다. 스크립트 해결 방법은 표준 출력과 표준 오류가 열린 /dev/null으로 열리는 응용 프로그램 코드를 실행하는 새로운 백그라운드 프로세스를 시작합니다. 그건 잘 작동합니다.

Mac OS X에서 C 상당은 posix_spawn 또는 fork/vfork이고 exec 실행 파일 일 것입니다.