Xcode在运行shell脚本时设置了与构建相关的各种环境变量。 有没有办法在不设置这些变量的情况下运行shell脚本?
答案 0 :(得分:3)
我有一个解决方案。
在Run Script Phase
目标阶段使用此方法:
https://serverfault.com/questions/176966/how-to-continue-execution-of-shell-script-after-calling-other-shell-script-with/176976#176976
这些shell命令在忽略当前环境中的变量的情况下运行以下命令。
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