2010-09-01 164 views
4

當運行shell腳本時,Xcode設置了各種與環境變量相關的構建。 有沒有辦法運行shell腳本而不設置這些變量?在Xcode中運行沒有環境變量的shell腳本?

+0

你能說清楚你想要什麼嗎?你是否希望能夠在Xcode之外運行腳本,當這些變量不會被設置時,但是你想在腳本中設置適當的值,使得它的行爲與從Xcode運行時的行爲類似?或者是你想從Xcode運行腳本,但是想讓所有由Xcode設置的環境變量都未設置? – 2010-09-01 14:22:26

+0

@Jonathan後者之一。我得到了解決方案,並自己回答。不管怎麼說,還是要謝謝你 :) – Eonil 2010-09-01 18:42:28

回答

3

我得到了一個解決方案。 在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