2013-03-09 77 views
1

問題

我試圖添加預開啓shell腳本,可以打開/關閉我的.pch文件中的某些定義,具體取決於我正在構建的內容。Xcode預操作腳本不工作?

但是,在運行構建時,沒有任何反應。我不是一個流利的shell腳本,所以解決方案可能是我的語法不正確,但Xcode不會告訴我任何東西。

詳細

下面是一些代碼:

prefix=${PROJECT_DIR}/${GCC_PREFIX_HEADER} 

sed -i 's/source/working/' $prefix 
sed -i 's/\/\/#define\ HOCKEYAPP_BUILD/#define\ HOCKEYAPP_BUILD' $prefix 
sed -i 's/\/\/#define\ FLURRY_ENABLED/#define\ FLURRY_ENABLED' $prefix 
sed -i 's/\/\/#define\ PRODUCTION_BUILD/#define\ PRODUCTION_BUILD' $prefix 

我加入了第一線,以測試它甚至會刪除一個基本的單詞,我知道是在.PCH文件。它沒有。這使我相信我的道路是無效的。

我已經嘗試了.pch文件路徑的幾個不同變體,並且都失敗了,儘管它們都可能是錯的。

謝謝您的幫助

+0

爲什麼不使用例如.pch文件中'''#ifdef DEBUG ...''' – SAE 2013-03-09 18:12:13

+0

請參閱:「將腳本文件添加到Xcode存檔」,http://stackoverflow.com/questions/7188704/adding-script-files-to-an-xcode-archive/,尤其是。提及如何使用預執行腳本。 – 2013-03-09 18:29:48

+0

SAE:有時我需要在調試期間打開這些選項,有時候不需要。 – 2013-03-09 18:33:25

回答

1

sed線似乎並不正確。請嘗試:

prefix=${PROJECT_DIR}/${GCC_PREFIX_HEADER} 

sed -i -e 's/source/working/' $prefix 
sed -i -e 's/\/\/#define\ HOCKEYAPP_BUILD/#define\ HOCKEYAPP_BUILD/' $prefix 
sed -i -e 's/\/\/#define\ FLURRY_ENABLED/#define\ FLURRY_ENABLED/' $prefix 
sed -i -e 's/\/\/#define\ PRODUCTION_BUILD/#define\ PRODUCTION_BUILD/' $prefix 
+0

這個伎倆! -e到底做了什麼? – 2013-03-13 15:00:28

+1

'-e'將以下參數標記爲要執行的實際代碼。它不是任何'sed'都需要的,但是你在安全的方面使用它。更重要的是在替代術語末尾的結尾斜線:沒有斜線,這個術語是不正確的。 – Matthias 2013-03-13 20:13:10