Ответ 1
Я решил свою проблему с помощью этой команды: xcodebuild -... || выход 1
Я использую xcodebuild внутри bash script на сервере непрерывной интеграции.
Я хотел бы знать, когда сборка не удалась в script, поэтому я могу преждевременно выйти из нее и пометить сборку как потертую.
xcodebuild отображает сообщение BUILD FAILED на консоль, но мне не удается получить возвращаемое значение.
Как я могу это достичь?
Заранее спасибо
Я решил свою проблему с помощью этой команды: xcodebuild -... || выход 1
xcodebuild
всегда возвращает 0, независимо от фактического результата теста. Вы должны проверить либо ** BUILD FAILED **
, либо ** BUILD SUCCEEDED **
на выходе, чтобы узнать, проходят ли тесты или нет.
Вы можете использовать "$?" переменная, чтобы получить код возврата предыдущей команды.
xcodebuild -...
if [[ $? == 0 ]]; then
echo "Success"
else
echo "Failed"
fi
Xcodebuild может вернуть любой из кодов ошибок, перечисленных здесь, но не ограничиваясь EX_OK (или int 0).
Однако я узнал из решения, предоставленного Дмитрием, и изменил его следующим образом. Это работает для меня, и я надеюсь, что это может быть полезно.
xcodebuild -project ......
if test $? -eq 0
then
echo "Success"
else
echo "Failed"
fi
Возможно, это не из-за того, что xcodebuild не возвращает ненулевое значение при сбое сборки. Ваша оболочка script, продолжающая работать независимо от строки возвращаемой ошибки, может быть результатом того, что вы не запускали script с опцией -e.
Попробуйте поставить #!/bin/bash -e перед файлом script.
Существует ли скомпилированный продукт (.a или .ipa файл)