У меня есть простой сценарий, который выглядит следующим образом:
#!/bin/sh
set -eux
install_folder="${HOME}/Library/MobileDevice/Provisioning Profiles"
mkdir -p "${install_folder}"
if [[ $? != 0 ]]; then
echo "Unable to create destination directory: ${install_folder}"
exit 1
fi
Если я запускаю этот сценарий из командной строки, выполнив ./my_script.sh
, все работает как положено. Вещи go неправильные, хотя, когда я звоню из Xcode как часть фазы сборки сценария запуска. В настоящее время я называю это наличием "${SRCROOT}/path/to/my_script.sh"
на этапе построения сценария запуска, но та же проблема возникает, даже если я непосредственно копирую и вставляю приведенный выше код.
Так в чем же проблема? Что ж, похоже Xcode вызывает создание неверной папки. Когда я запускаю из командной строки, я получаю папку с именем Provisioning Profiles
внутри ~/Library/MobileDevice/
, как и ожидалось. Когда я запускаю из Xcode, папка называется Provisioning\ Profiles
(что \
буквально является частью имени).
Но это становится страннее. Если я изменю строку mkdir
на mkdir -p $install_folder
, то я ожидаю получить папку с именем Provisioning
внутри папки MobileDevice
и папку с именем Profiles
, где бы я ни запускал команду. Вот что происходит, когда я бегу из командной строки. Однако, если я запускаю из Xcode, я получаю папку Profiles
внутри MobileDevice
, но я также получаю папку с именем Provisioning\ Profiles
.
Я вообще не могу объяснить это поведение. Кажется, это полностью противоречит всему, что я (думал) знал о скриптах оболочки.
Как Xcode влияет на это? Как мне это остановить?