2011-05-11 1 views
43

hudson과 함께 실행되도록 iPhone 프로젝트를 설정 중이며 빌드 스크립트는 로컬로 작동하지만 Snow Leopard에서 다음 명령을 실행할 때 서버 Macxcodebuild를 사용하여 빌드 <IDEWorkspace, 0x2004cebc0>/"runContextManager.runContexts"를 기다리는 시간 초과되었습니다

xcodebuild -sdk iphoneos4.3 -workspace Moments.xcworkspace/ -scheme Moments -configuration DistributionTest 

다음과 같은 오류 메시지가 나타납니다.

Build settings from command line: SDKROOT = iphoneos4.3

2011-05-11 10:32:17.729 xcodebuild[4151:903] WARNING: Timed out waiting for /"runContextManager.runContexts" (10.010780 seconds elapsed) xcodebuild: error: The workspace 'Moments.xcworkspace/' does not contain a scheme named 'Moments'.

시간 제한이란 무엇입니까?! 그리고 그것이 분명히있을 때 왜 순간 계획이라는 것을 발견 할 수 없습니까? 빌드 서버의 xcode에서 작업 공간을 열면이 구성표를 볼 수 있습니다.

답변

97

는을 통해 연 적이없는 깨끗한 체크 아웃 경우에도

그래서 Project.xcodeproj/xcshareddata/xcschemes/Scheme.xcscheme에 계획을 이동 xcode UI가 작동합니다. 우리는 이것을 사용하여 buildbot이 우리의 앱을 빌드 할 수 있습니다.

+6

전설! 감사. – jennas

+1

감사합니다. 당신은 내 하루를 구 했구나 !! – Denis

+0

우후! 이 페이지를 방문하는 사람들 !!! 확인 된 대답은 좋지만 이보다 더 좋습니다! 감사합니다 @ 데이비드! –

10

불행히도 xcodebuild는 XCode에 의해 생성 된 사용자 별 파일에 따라 다릅니다. 이 문제를 해결하려면 hudson 사용자로 로그인하여 Xcode UI를 한 번 실행하십시오. 그러면 필요한 파일이 만들어집니다.

현재이 문제를 해결하기 위해 노력하고 있지만 필요한 파일을 빌드하기 전에 소스 트리에 복사하려고합니다.

xcodebuild를 실행하고 Xcode가 백그라운드에서 실행중인 경우 xcodebuild는 필요한 데이터를 얻기 위해 Xcode에 연결합니다. Xcode가 실행 중이 지 않으므로 시간 초과가 발생합니다. 은 "구성표 관리"대화 상자에서 "공유"상자를 선택

+0

아, 멋지다! 감사! – Erik

+0

FYI 아래 답변은 더욱 안정적으로 작동합니다. 특히 동일한 프로젝트에 여러 작업이있는 경우 더욱 그렇습니다. –

-2

스키마는 기본적으로 사용자 (및 빌드 서버)간에 공유되지 않습니다. David mentions으로 공유 할 수 있지만 대신 대상을 호출하여 공유 할 수 있습니다. 계획이 정상적으로 대상으로 같은 이름 때문에

그래서 대신

xcodebuild -scheme Foobar 

xcodebuild -target Foobar 

이 될 것입니다.

+0

설명서를 올바르게 이해하면 사용하는 경우 -target 플래그를 사용할 수 없습니다 -workspace 플래그. 당신이 작업 공간에 의지한다면 당신은 계획을 사용해야하고 문제에 대한 해결책은 David와 Cornelius에 의해 제공되었다는 것을 의미합니다. – Erik