2011-05-08 4 views
4

한 시스템에 Xcode (XCode3 및 XCode4)의 다른 복사본을 보관할 표준 경로가 없습니다. Makefile 또는 다른 명령 행 기반 빌드 프로세스의 경우 특정 버전의 XCode 설치 경로 ($ DEVELOPER_DIR)를 확인하여이 경로를 DEVELOPER_DIR로 내보내거나 xcode-select를 사용하여 활성화하십시오.버전 별 Xcode 설치 경로 찾기

지금까지 system_profiler의 xml 출력을 쿼리하려고합니다.

다른 (더 편리한) 옵션이 있습니까?

기본적으로 설치 경로를 몰라도 Xcode3 (또는 Xcode4)을 사용하도록 시스템에 알리는 스크립트가 필요합니다.

+0

좋은 질문입니다. 나는'pkgutil (1)'을 가지고 놀았지만 Xcode 자체에는 패키지 관련 영수증이없는 것 같습니다. –

답변

1

는 여기에 지금까지 가지고 올 한 내용은 다음과 같습니다

DEVELOPER_DIR=`system_profiler SPDeveloperToolsDataType -xml |\ 
xpath "//*[text()='spdevtools_version']/following-sibling::string[starts-with(text(),'3')]/../*[text()='spdevtools_path']/following-sibling::string[1]/text()"` 

이 Xcode3의 설치 경로에 DEVELOPER_DIR를 설정합니다. Xcode4의 경우 '3'을 '4'로 바꾸십시오.

여러 버전의 XCode3이 설치된 경우 예상대로 작동하지 않습니다.

0

lsregister 명령을 사용하여 Launch Services 데이터베이스를 쿼리하면 설치된 모든 Xcode 버전의 설치 경로를 명령 줄에서 찾을 수 있습니다. 실행

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump | grep --before-context=2 "com.apple.Xcode" | grep --only-matching "/.*\.app" 

모든 Xcode4 설치 경로를 찾으려면 :

실행, 모든 Xcode3 설치 경로를 찾으려면
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump | grep --before-context=2 "com.apple.dt.Xcode" | grep --only-matching "/.*\.app" 

또한이 question를 참조하십시오.

+0

좋아요. 최근에 마운트 된 네트워크 볼륨에서 XCode 설치를 찾는 것도 약간의 결함입니다. – tonklon

+0

다음은 Xcode 5에서 작동합니다. '/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump | grep -i --before-context = 3 "com.apple.dt.Xcode"| grep --only-matching "/.* \. app"' –