在Xcode中运行不带环境变量的shell脚本?

5

Xcode在运行shell脚本时会设置与构建相关的各种环境变量。有没有一种方法可以在不设置这些变量的情况下运行shell脚本?


你能澄清一下你的需求吗?是想要在Xcode之外运行脚本时这些变量不会被设置,但是你想在脚本中设置适当的值,使其表现类似于在Xcode中运行时的方式吗?还是说你想从Xcode中运行脚本,但是希望所有这些环境变量都被Xcode取消设置? - Jonathan Leffler
@Jonathan Latter,我已经找到解决方案并回答了自己。无论如何还是谢谢 :) - eonil
1个回答

5
我有一个解决方案。 在“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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接