При использовании Xcode, kill $PPID
не является решением, как я комментировал Farcaller.
Мое решение состоит в том, чтобы сценарий предварительного действия сгенерировал заголовочный файл (например, SchemePreActions.h ) и сделал его пустым для нормальной ситуации, а также включил его в код (например, в AppDelegate.m ).
Таким образом, если вы хотите, чтобы скрипт предварительного действия сообщал об ошибке, поместите туда строку #error
, как в этом реальном примере:
if [ $CONFIGURATION == Debug ]; then
echo "#error AppStore builds must not be in debug configuration" >> SchemePreActions.h
fi
Xcode очень хорошо сообщит об этой ошибке.
Рекомендуется, чтобы сгенерированный файл игнорировался git.
В качестве подсказки Я добавлю, что мой сценарий перед действиями всегда начинается со следующих строк:
echo "//auto-generated. no need to commit" > SchemePreActions.h
echo "#define SCHEME_${SCHEME_NAME}" >> SchemePreActions.h
echo "#define SCHEME_NAME @\"${SCHEME_NAME}\"" >> SchemePreActions.h
if [[ ${SCHEME_NAME} =~ "_PROD" ]]; then
echo "#define PRODUCTION" >> SchemePreActions.h
fi
Таким образом, включая SchemePreActions.h , мой код может проверить, работает ли он подконкретная схема.