OS X에 'open -b“bundle.id”를 사용하기위한 요구 사항


0

응용 프로그램을 자동으로 열고 실행하는 설치 후 스크립트가 있습니다. 이 응용 프로그램은 Automator를 사용하여 만들어졌으며 기본적으로 Applescript를 실행하고이 응용 프로그램은 app Resources 폴더에 포함 된 Bash 스크립트를 실행합니다.

설치 후 스크립트 :

#!/bin/bash

open -b "com.company.ApplicationName"

일부 기계에서는 작동하지만 다른 기계에서는 작동하지 않습니다. 오류가 발생했습니다

LSGetApplicationForInfo() failed with error -10814 while trying to determine the application with bundle identifier com.company.ApplicationName

이유를 알 수 없었습니다. 컴퓨터에 어떤 종류의 필수 소프트웨어가 빠져 있다고 가정합니다.

사용 요구 사항을 알고있는 사람이 open -b "bundleid"있습니까? Xcode, Xcode, 명령 줄 도구 등이 있습니까? 통찰력에 감사드립니다.


1
당신은 또한 같은 것을 사용해보십시오 osascript -e 'tell app id "com.company.ApplicationName"' -e reopen -e activate -e end.
Lri

답변:


1

내 생각에 그것은 앱이 시스템에 등록 될만큼 충분히 오랫동안 앱이 존재하는 시스템에서 작동하지만 매우 오랫동안 존재하지 않은 시스템에서는 실패한다고 생각합니다.

여기에 가능한 해결책이 있습니다.

명령 (한 줄)

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

경고

이 명령을 실행 한 후 OS X은 일부 응용 프로그램을 처음으로 열기 전에 메시지를 표시 할 수 있습니다. 나는 다른 사람의 Mac에서 그것을 실행하지 말 것을 제안하지 않을 것입니다.

대신에, open -a /path/to/your/app대신에 사용 하는 것이 좋습니다open -b {bundle-id}


제안 해 주셔서 감사합니다. 문제는 Munki와 함께 배포하고 설치 후 스크립트를 사용하여 자동으로 여는 것입니다. 번들 경로를 사용하는 것이 유일한 유일한 옵션이므로 다른 경로에 설치 될 수 있습니다. 또한 lsregister를 죽이는 한, 각 머신을 공격해야하며 ARD가 환경에서 유용하지는 않습니다 (현재 Munki를 사용하는 이유 중 하나).
TryTryAgain

솔루션으로 앱 업데이트를 발송하여 번들 ID를 등록 할 시간을주었습니다. 별도의 소프트웨어가 설치되어 있지 않으면 소프트웨어를 사용하여 앱을 여는 데 아무런 문제가없는 것 같습니다. open -b "app.bundle.id" 예, 시간과 번들 ID가 등록되지 않은 문제 일 것입니다. 귀하의 의견과 도움에 다시 한번 감사드립니다.
TryTryAgain
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.