У меня есть решение.
Используйте этот метод в Run Script Phase
целевой фазе:
https://serverfault.com/questions/176966/how-to-continue-execution-of-shell-script-after-calling-other-shell-script-with/176976#176976
Эти команды оболочки запускают следующую команду, игнорируя переменные в текущей среде.
env -i <command>
exec -c <command>
В качестве примера я использовал этот скрипт:
env -i ./makeall.sh
Это отключает все предопределенные переменные XCode, поэтому сценарий не зависит от конфигурации XCode, но он также менее полезен, поскольку мы не можем использовать сборку, связанную с путями XCode.
Таким образом, однако, вы можете передать определенную переменную XCode, как этот скрипт.
build()
{
# Don't know why, however, the environment variable passed to external script even with "env -i".
env -i ./makeall.sh "${SYMROOT}"
}
build