【问题标题】:Running shell script without environment variables in Xcode?在Xcode中运行没有环境变量的shell脚本?
【发布时间】:2010-09-01 14:17:21
【问题描述】:

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

【问题讨论】:

  • 你能澄清你想要什么吗?当这些变量不会被设置时,您是否希望能够从 Xcode 外部运行脚本,但是您想在脚本中设置适当的值,以便它的行为类似于从 Xcode 运行时的行为方式?还是您想从 Xcode 运行脚本但希望取消设置 Xcode 设置的所有这些环境变量?
  • @Jonathan 后者。我得到了解决方案,并回答了自己。无论如何谢谢:)

标签: xcode environment-variables shell


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 2017-09-08
    • 2010-11-30
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多