Я настраиваю систему CI, используя Jenkins, и обнаружил, что сборка была неудачной, поскольку в отчетах xcodebuild нет схем, когда я выполнял строку
-xcodebuild -workspace XXX-схема NNN.
Я не мог понять, почему это может произойти, поэтому, чтобы устранить что-то неловкое, с моей рабочей областью, я создал новый шаблон проекта с помощью XCode и обнаружил, что я получаю разницу в поведении для любой команды xcodebuild и для любого Рабочая область/проект.
Проект шаблона был назван scrap, и если из командной строки терминала я запустил эту команду, например:
xcodebuild -list
Он выводит
Information about project "scrap":
Targets:
scrap
Build Configurations:
Debug
Release
If no build configuration is specified and -scheme is not passed then "Release" is used.
Schemes:
scrap
Но если я запустил xcodebuild -list из Jenkins, тогда вместо этого будет:
Building in workspace /Users/Shared/Jenkins/Home/workspace/scrap
[scrap] $ /bin/sh -xe /var/folders/ph/s6dvlfq9769741g_yzmjlmz000007c/T/hudson3765407964219991487.sh
+ xcodebuild -list
Information about project "scrap":
Targets:
scrap
Build Configurations:
Debug
Release
If no build configuration is specified and -scheme is not passed then "Release" is used.
This project contains no schemes.
Это самый простой из заданий jenkins - все, что я делаю, это создать новое задание, установить его в проект со свободным стилем, а затем добавить этап сборки оболочки Execut и добавить команду xcodebuild -list, чтобы она была.
Почему xcodebuild говорит, что нет схем, когда есть? И почему он ведет себя по-другому, когда убегает из Дженкинса?