2014-05-15 5 views
6

주 프로젝트의 일부로 여러 하위 프로젝트 (lib 파일로 컴파일하는 프레임 워크 프로젝트)가 포함 된 Xcode 프로젝트가 있습니다. 이 프로젝트는 Xcode에서 적절히 컴파일/빌드됩니다 (히타치 트리의 하단에서 메인 앱 프로젝트까지 정확하게 하위 프로젝트를 빌드합니다).Xcode : xcodebuild가 하위 프로젝트를 포함하는 프로젝트를 빌드하는 방법

이제는 지속적인 통합을 위해 프로젝트를 설정하려고하는데 xcodebuild를 사용하여 명령 줄에서 빌드를 시도하면 ... 빌드 전에 빌드 된 .a 파일을 찾지 못해 빌드가 실패합니다. 주요 프로젝트.

cmd 라인에서 각각의 lib 파일을 독립적으로 빌드 할 수 있지만 전체 통합 프로젝트가 실패합니다. 필자는 대상 구성표에서 종속성을 올바르게 관리하고 xcodebuild를 사용할 때 대상 또는 구성표를 지정하더라도 여전히 하위 프로젝트를 빌드하지 않습니다.

Xcode IDE에서와 마찬가지로 xcodebuild가 하위 프로젝트를 만든 다음 주 프로젝트를 만들 수있는 방법이 있습니까? 그렇지 않은 경우, 전체 프로젝트를 작업 공간으로 변환하면이 작업이 가능합니까?

도움이나 의견을 크게 주시면 감사하겠습니다. Mavericks에서 Xcode 5.1.1을 실행 중입니다.

+0

때때로'Release'와'Debug' 빌드 설정은 다른 설정을 가지고 있습니다. '-configuration Debug' xcodebuild 옵션을 사용해 볼 수 있습니다. 이 버튼은 실행 버튼을 누른 경우 Xcode 5.1과 동일한 방식으로 빌드해야합니다. –

+0

또한 오른쪽 사이드 바에서 "관련"질문을 살펴보십시오. –

답변

2

여러 프로젝트를 작성하려면 작업 영역을 사용해야합니다. 또한 CI 서버로 이동하고 있으므로 스키마를 공유해야합니다.

+0

감사합니다. 실바 나르, 당신이 올바른 방향으로 나를 지적했습니다. – SeaWolf

8

이 솔루션은 대신 "-target"프로젝트가

실패 (응용 프로그램을 모든 하위 프로젝트/프레임 워크 다음 목표)가 제대로 구축 할 수의 "-scheme"플래그를 사용하여 ... 간단한 하나 : 예상대로 내장

xcodebuild -project MyProject.xcodeproj -target MyProject -sdk "iphoneos" -configuration “Build” archive OBJROOT=../../build_iOS/Obj.root SYMROOT=../../build_iOS/Sym.root 

:

작업 공간으로 프로젝트를 변환 할 필요가 없었다
xcodebuild -project MyProject.xcodeproj -scheme MyProject -sdk "iphoneos" -configuration “Build” archive OBJROOT=../../build_iOS/Obj.root SYMROOT=../../build_iOS/Sym.root 

.

+2

프로젝트, 스키마 등에서 전체 파일 경로를 사용하면 큰 차이가 있음을 발견했습니다. 종종 Xcodebuild는 터미널이 올바르게 보이더라도 파일을 찾을 수 없다는 불평을합니다. 완전한 경로로 해결됩니다. – SeaWolf