Можно ли изменить переменную среды Xcode BuildSettings на этапе сборки в скрипте?
Вся идея в следующем: я хочу опубликовать опенсорсный проект с модульными тестами. Мои тесты требуют конфиденциальных данных, таких как «логин» и «пароль», поэтому я не могу их жестко закодировать. Я хочу пройти логин через среду процесса, чтобы иметь возможность сделать что-то вроде этого:
let login = ProcessInfo().environment["login"]!
Я нашел способ, как передать переменную из среды настроек сборки в процесс тестов: выберите схему «Тесты», перейдите к переменным среды и добавьте новое значение с именем «логин» и значением «$ (логин)». Если я установлю значение для «логина» прямо на вкладке настроек сборки — он будет доступен из ProcessInfo, как я и ожидал.
Но я хочу установить «логин» из файла сценария корневой папки проекта «SetupCreds.sh», который находится в .gitignore, поэтому в нем безопасно хранить логин и пароль. Итак, идея такова:
- Добавить сценарий этапа сборки
- Этот скрипт запускает «SetupCreds.sh».
- «SetupCreds.sh» состоит из строк экспорта, таких как
export login="MyLogin
Если я добавлю echo ${login}
в сценарий этапа сборки, он скажет мне, что «логин» действительно имеет значение «MyLogin». Но этот экспорт не влияет на среду Build Settings, а только на среду сценария Build Phase.
Как сделать экспорт, который переопределяет переменные среды Build Settings? Или, может быть, есть другой способ сделать то, что я хочу?
Bundle.for(type(of: self).self)
, чтобы получить URL-адрес Tests.cfg. - person Vladlex   schedule 16.01.2019