2012-11-24 39 views
4

我想爲我的應用程序添加一個新的#define宏,但只適用於某些方案,如測試方案。做這個的最好方式是什麼?我知道,當您在測試中運行應用程序時(即在模擬器中),它會添加一個DEBUG = 1宏,但我無法弄清楚如何添加更多的宏。對於某些方案,將宏BETA = 1添加到Xcode?

回答

5

最好的方法是使用Xcode configuration files

添加幾個文件名爲Beta.xcconfigDistribution.xccconfig(或類似的東西),併爲每種構建添加您的宏。

Beta.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BETA=1 

Distribution.xcconfig。

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BETA=0 

您可以用新文件對話框中輕鬆添加文件:

Create a xcconfig file

然後,你需要將每個文件映射到編風格。練到頂級項目,項目設置(右上方的目標),然後單擊「信息」部分:

Map xcconfigs to build styles

在你的代碼可以使用宏一如既往:

#if BETA 
// do something only in beta 
#endif 

如果代替分配一個值,您只需定義宏,您應該使用#ifdef

如果你使用了一些宏,你可能需要檢查一切正在按預期看着你構建日誌:

build logs with macros highlighted

+0

謝謝。但是你的回答並不清楚**哪個**項目信息標籤要去,因爲有幾個。謝天謝地,我能弄明白,但你應該更新你的(優秀)答案,說它是用於整個項目 - 不適用於任何子項目。 – Jason

3

計劃只執行編譯配置

宏只能爲構建配置設置

進行新的構建配置和新的方案,使用它

實在是有點不方便:/

0

另一種方法(我使用)會在構建設置你的項目或目標。

1)轉到項目 - >目標 - >構建設置
2)搜索「預處理宏」

現在你應該可以看到該項目定義的所有方案,並添加你喜歡的任何預處理宏。只記得離開$(繼承)。你也許想保留所有其他定義的宏,就像我的情況那樣,我有COCOAPODS = 1的定義。