2011-06-29 38 views
5

我在寫一個腳本來自動化我的iOS建築。它將通過終端或構建自動化軟件在Xcode之外運行。有沒有辦法在我的腳本中訪問Xcode環境變量,所以我不必親自嘗試並派生它們?如何從外部腳本訪問Xcode環境(和構建)變量?

例如,我可以訪問PROJECT_DIR而不是假設我處於當前目錄並運行pwd?

我目前硬編碼我的不同構建配置的產品名稱。 (我也很難編譯構建配置,但我可以從xcodebuild -list解析它們。)如果知道構建配置名稱,是否有辦法獲取應用程序?

(我看到這個related question,但它並沒有給我一個答案。)

+0

我想知道是否可以使用Dtrace來獲取env變量,但是如果只找到這個:http://opensolaris.org/jive/thread.jspa?threadID=954 –

+0

爲什麼不同的配置有不同的產品名稱?這些不應該是不同的*目標*?大多數項目都有Debug,Release和Distribution/AppStore/AdHoc。通常,對於名爲MyApp的目標,您希望輸出爲MyApp.app以避免混淆。我們的構建系統會執行清理檢出/構建,因此在輸出目錄中應該只有一個.app(儘管在一些地方我們將輸出目錄硬編碼爲build/AppStore-iphoneos或類似文件)。 –

回答

10

Xcode的環境變量只爲xcodebuild命令行工具的子進程來定義。

我使用的一個解決方案是將一個非常簡單的腳本作爲我的構建過程的一部分(Project-> New Build Phase-> Add Run Script Build Phase)。所有這些腳本都會導出必要的變量並在我的路徑中調用腳本。

在調用xcodebuild和voilà之前,您的構建腳本可能會生成該腳本!你有一個外部腳本可以訪問Xcode構建變量。