Подтвердить что ты не робот

Скрипт предварительного действия схемы Xcode не запущен

Хит построить, и ничего не печатается в журнале сборки Что дает?

Версия Xcode 8.2.1 (8C1002)

enter image description here

4b9b3361

Ответ 1

Перед сборкой выполняется предварительное действие, поэтому вывод не идет в журнал сборки, он переходит в stdErr. Вы можете скопировать вывод в файл:

exec > ${PROJECT_DIR}/prebuild.log 2>&1
echo "hello world"

Чтобы заставить переменные среды работать, вам также необходимо установить "Предоставить параметры сборки от" до соответствующей цели.

введите описание изображения здесь

Это должно написать hello world в файл с именем "prebuild.log" в папке проекта.

Если вы хотите, чтобы эти действия попали в журнал построения, рассмотрите возможность добавления запуска script к фазе вашей целевой сборки.

Ответ 2

Чтобы добавить к ответу fooobar.com/questions/844962/..., важно как можно больше не загромождать project.pbxproj (куда идут сценарии сборки) или файл схемы (куда идут эти сценарии).

Имея это в виду, я создаю папку Build-Scripts в корневом каталоге проекта, куда я помещаю сценарии сборки приложения и сценарии перед действием. Эта папка перетаскивается в корень проекта как папка, поэтому любой сценарий, который я добавляю в него, автоматически добавляется в проект.

Предполагая, что ваш сценарий предварительного действия называется That_pre-action_script.sh, это то, что я поместил в сценарий предварительного действия на основе утвержденного ответа.

say "Pre build scripts running."
exec > "${PROJECT_DIR}/prebuild.log" 2>&1
echo "Starting build scheme Pre-actions"
"${PROJECT_DIR}/Build-Phases/That_pre-action_script.sh"

В качестве теста убедитесь, что вы получили какое-то сообщение из вашего скрипта, чтобы вы могли увидеть его в файле prebuild.log.

Надеюсь это поможет.

И не забудьте chmod u + x ваш скрипт, чтобы он запустился.

Важной частью является то, что вы не можете убедиться, работает ваш скрипт сборки или нет. Здесь нам полезна команда say, чтобы вы знали, что она на самом деле выдается перед сборкой.

Хорошей идеей будет заключать в кавычки путь к сценарию, если на пути к вашему проекту есть пробелы (или нет).

Ответ 3

Вы должны добавить оболочку script в проект Xcode, например, добавить объективный файл C, или оболочку script не может быть найден Xcode.