Подтвердить что ты не робот

Создание с помощью xcodebuild Сроки ожидания <IDEWorkspace, 0x2004cebc0>/ "runContextManager.runContexts"

Я настраиваю свой проект iphone для запуска с помощью hudson, моя сборка script работает нормально локально, но при выполнении следующей команды на моем сервере снежного барса Mac

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

Я получаю следующие сообщения об ошибках.

Установите параметры из командной строки:     SDKROOT = iphoneos4.3

2011-05-11 10: 32: 17.729 xcodebuild [4151: 903] ПРЕДУПРЕЖДЕНИЕ: время ожидания //rurunContextManager.runContexts "(10.010780 секунд) xcodebuild: error: Рабочая область" Moments.xcworkspace/ "не содержит схемы с именем" Моменты".

Какой тайм-аут?! И почему он не может найти схему под названием "Моменты", когда она определенно существует. Если я открою рабочее пространство в xcode на сервере сборки, я увижу схему.

4b9b3361

Ответ 1

проверка "общего" поля в диалоговом окне "Управление схемами" перемещает схемы в Project.xcodeproj/xcshareddata/xcschemes/Scheme.xcscheme

поэтому даже если у вас есть чистая проверка, которая никогда не открывалась через xcode ui, это будет работать. мы используем это, чтобы buildbot мог создавать наши приложения

Ответ 2

К сожалению, xcodebuild зависит от некоторых файлов пользователя, созданных XCode. Чтобы исправить это, вы можете войти в систему как пользователь hudson и запустить интерфейс XCode один раз. Это создаст необходимые файлы.

В настоящее время я пытаюсь обойти это, но копируя необходимые файлы в исходное дерево перед сборкой.

Если вы запустите xcodebuild и XCode запущен в фоновом режиме, xcodebuild свяжется с XCode, чтобы получить необходимые данные. Поскольку XCode не работает, вы получаете таймаут.

Ответ 3

Схемы по умолчанию не распределяются между пользователями (и вашим сервером сборки). Как Дэвид упоминает, вы можете поделиться им, но вы также можете просто ссылаться на целевые объекты, которые являются общими.

Итак, вместо

xcodebuild -scheme Foobar

это будет

xcodebuild -target Foobar

так как схемы обычно называются такими же, как и цель.