LSOpenURLsWithRole ()이 오류 -10810으로 실패했습니다-다운로드 한 앱이 시작되지 않습니다 대한 오류

인터넷에서 다운로드 한 응용 프로그램 (예 : Jabref)을 실행하려고하는데 자동으로 실패하는 것 같습니다. 두 번 클릭하여 열려고하면 아무 일도 일어나지 않습니다. 터미널을 사용할 때 다음 메시지가 나타납니다.

LSOpenURLsWithRole () 파일에 대한 오류 -10810으로 실패했습니다 … / xxxx.app

권한 변경 및 Info.plist 파일 수정과 같은 몇 가지 제안을 시도했지만 아무 효과가 없습니다.

Java 응용 프로그램이므로 다음을 사용하여 터미널을 통해 실행하려고했습니다.

java -cp “CLASSPATH”MAINCLASS

잘 작동합니다.

이 응용 프로그램뿐만 아니라 다른 응용 프로그램 에서도이 오류가 발생합니다.

미리 감사드립니다.



답변

LSOpenURLsWithRole은 파일을 프로그램과 연결하는 데 사용되는 함수입니다. 두 번 클릭하는 파일은 실제로 응용 프로그램이 아니라 데이터 파일입니다.

예를 들어 텍스트 문서를 두 번 클릭하면 TextEdit 프로그램 또는 다른 관련 앱이 시작됩니다.

설치되어 있다고 가정하고 Java 런타임과 연관시켜야합니다.

파일을 마우스 오른쪽 버튼으로 클릭하고 정보 입수를 선택하면 정보 창에 “연결 프로그램 :”이라는 섹션이 있습니다. Java 런타임으로 설정해야합니다.


답변

Java가 아닌 프로그램에 대해이 문제가 발생하는 사람은 Mach-O 실행 파일이 포함 된 .app 파일을 실행하려고 할 때 동일한 오류 메시지가 나타납니다. 번들 (예 :)에서 직접 실행 파일을 실행하려고 Foo.app/Contents/MacOS/bar하면 동적 lib 종속성이 누락되었음을 나타내는 훨씬 더 나은 오류가 발생했습니다.

dyld: Library not loaded:/usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets

이 오류가 발생하면 시도해보십시오.


답변

배포하려는 Java 프로그램 에서이 오류가 발생했습니다. 두 번째 Mac에서 작동하지 못했습니다 : 10.11.6. 나는 답을 찾기 위해 모든 곳을 찾았지만 찾지 못했습니다. 그래서 다른 사람들이 혜택을 볼 수 있도록 여기에 넣었습니다. 시스템 콘솔을 시작하여 “open”프로그램이 번들 컨텐츠에서 “JavaApplicationStub”프로그램을 찾을 수 없다는 오류 메시지를 발견했습니다. 문제는 내 번들이 “JavaAppLauncher”를 사용하여 시작한 것입니다. 방금 이전 Apple JarBundler 사용에서 Oracle AppBundler로 변경하여 앱에 서명 할 수 있었고 시작 프로그램 이름이 다릅니다. 여기서 핵심은 새 번들 (버전 7.1.1)이 이전 번들 (버전 7.1.0)을 대체하고 동일한 애플리케이션 이름을 가졌음을 나타냅니다. 이전 버전은 JavaApplicationStub을 사용하여 시작했습니다.

프로그램의 Info.plist 속성이 캐시 된 것으로 보이며 오래된 값을 사용하여 새 번들을 시작했습니다. 로그 아웃 또는 재부팅시 캐시가 지워 졌는지 또는 최신 버전의 OS X에서 수정되었는지 알 수 없지만 모든 최종 사용자에게 원활하게 작동해야합니다.

프로그램 이름에 버전 번호를 포함시켜 문제를 해결했습니다.