Как получить возвращаемое значение xcodebuild?

Я использую xcodebuild внутри bash script на сервере непрерывной интеграции.

Я хотел бы знать, когда сборка не удалась в script, поэтому я могу преждевременно выйти из нее и пометить сборку как потертую.

xcodebuild отображает сообщение BUILD FAILED на консоль, но мне не удается получить возвращаемое значение.

Как я могу это достичь?

Заранее спасибо

Ответ 1

Я решил свою проблему с помощью этой команды: xcodebuild -... || выход 1

Ответ 2

xcodebuild всегда возвращает 0, независимо от фактического результата теста. Вы должны проверить либо ** BUILD FAILED **, либо ** BUILD SUCCEEDED ** на выходе, чтобы узнать, проходят ли тесты или нет.

Ответ 3

Вы можете использовать "$?" переменная, чтобы получить код возврата предыдущей команды.

xcodebuild -...
if [[ $? == 0 ]]; then
    echo "Success"
else
    echo "Failed"
fi

Ответ 4

Xcodebuild может вернуть любой из кодов ошибок, перечисленных здесь, но не ограничиваясь EX_OK (или int 0).

Однако я узнал из решения, предоставленного Дмитрием, и изменил его следующим образом. Это работает для меня, и я надеюсь, что это может быть полезно.

xcodebuild -project ......
     if test $? -eq 0
     then
        echo "Success"
     else
        echo "Failed"
     fi

Ответ 5

Возможно, это не из-за того, что xcodebuild не возвращает ненулевое значение при сбое сборки. Ваша оболочка script, продолжающая работать независимо от строки возвращаемой ошибки, может быть результатом того, что вы не запускали script с опцией -e.

Попробуйте поставить #!/bin/bash -e перед файлом script.

Ответ 6

Существует ли скомпилированный продукт (.a или .ipa файл)