Как получить возвращаемое значение xcodebuild? - PullRequest
10 голосов
/ 09 сентября 2011

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

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

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

Как мне этого добиться?

Спасибо зазаранее

Ответы [ 6 ]

11 голосов
/ 30 мая 2012

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

11 голосов
/ 14 октября 2011

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

10 голосов
/ 17 октября 2011

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

xcodebuild -...
if [[ $? == 0 ]]; then
    echo "Success"
else
    echo "Failed"
fi
6 голосов
/ 24 октября 2013

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

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

xcodebuild -project ......
     if test $? -eq 0
     then
        echo "Success"
     else
        echo "Failed"
     fi
2 голосов
/ 25 ноября 2016

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

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

0 голосов
/ 30 ноября 2016

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

...