Ошибка Xcodebuild в jenkins с cocoapods

Я использую плагин xcode. Я осмотрелся, но большинство «решений» не сработало.

Моя основная проблема заключается в том, что в созданном xcworkspace нет схемы для проекта, который я пытаюсь построить. Плагин выполняет команду

$ /usr/bin/xcodebuild -list -workspace Project.xcworkspace

а на выходе показаны только схемы модуля, а не основная схема проекта.

Information about workspace "Project": Schemes: Pods Pods-AFNetworking Pods-Bolts Pods-Facebook-iOS-SDK

У меня есть этап сборки cocoapods с pod install

Я поместил это как конфигурацию плагина Xcode: Target: Project, clean before build, Configuration: Debug, Xcode schema file: Project, Xcode workspace file: Project, Build output directory: $ {WORKSPACE} / build.

Это ошибка, которая распечатывается:

Going to invoke xcodebuild:, scheme: Project, sdk: DEFAULT, workspace: Project, configuration: Debug, clean: YES, archive:NO, symRoot: DEFAULT, configurationBuildDir: /Users/ignat/.jenkins/workspace/Project/build, codeSignIdentity: DEFAULT
[Project] $ /usr/bin/xcodebuild -scheme Project -workspace Project.xcworkspace -configuration Debug clean build CONFIGURATION_BUILD_DIR=/Users/ignat/.jenkins/workspace/Project/build
Build settings from command line:
    CONFIGURATION_BUILD_DIR = /Users/ignat/.jenkins/workspace/Project/build

xcodebuild: error: The workspace 'Project' does not contain a scheme named 'Project'.
FATAL: Build directory does not exist at /Users/ignat/.jenkins/workspace/Project/build. Potential configuration issue.
Build step 'Xcode' marked build as failure
Finished: FAILURE

person Ignat    schedule 05.09.2014    source источник


Ответы (1)


Как видно из вывода xcodebuild -list, в вашем рабочем пространстве есть только схемы для модулей.

Если ваш экземпляр Jenkins извлекает ваш проект из репозитория, скорее всего, вы не поделитесь своей Project схемой со всеми.

Чтобы исправить это, вам нужно будет поделиться своей схемой для всех пользователей, использующих репо. В Xcode щелкните имя схемы, чтобы открыть меню схемы (верхний левый угол), и выберите «Управление схемами ...».

Меню управления схемами

В диалоговом окне «Управление схемой» убедитесь, что схема, которую вы хотите создать с помощью Jenkins, доступна всем пользователям, установив флажок «Общий доступ» справа.

Диалог управления схемами

После этого ваша Project схема должна быть указана в Jenkins.

person LodeRunner    schedule 05.09.2014
comment
Должна ли схема быть в проекте контейнера Project или проекта Pods? - person Ignat; 05.09.2014
comment
Он принадлежит проекту Project, поскольку проект Pods управляет только модулями, а проект Project управляет всеми исходными файлами и настройками вашего проекта. - person LodeRunner; 05.09.2014
comment
Разве эта информация схемы не должна быть уже в рабочей области? - person Ignat; 05.09.2014
comment
@ ignat980: информация о схеме генерируется Xcode при первом открытии проекта. Поэтому вам нужно просто зарегистрировать его в своем исходном элементе управления, чтобы использовать его с Jenkins. - person qefzec; 06.09.2014
comment
Есть ли способ создать глобальную схему, не привязанную к пользователю? - person Will; 01.04.2016
comment
Схема, которую вы хотите создать с помощью Jenkins, доступна всем пользователям, установив флажок Shared справа. Awsm! это сработало !!! Спасибо. - person Venu Gopal Tewari; 10.08.2016