iOS 環(huán)境變量配置(Debug&Release&Test)

Debug宏應(yīng)該在哪里定義?

iOS系統(tǒng)本身就區(qū)分了Configurations選項讓開發(fā)者去修改對應(yīng)的開發(fā)環(huán)境配置, 但是因為很多開發(fā)者卻又在同一個Configuration環(huán)境中自定義了開發(fā)環(huán)境配置的開發(fā), 使得iOS系統(tǒng)本身的配置成為了擺設(shè), 僅僅用于區(qū)分打包方式選項和證書配置。

網(wǎng)絡(luò)環(huán)境切換是每一個互聯(lián)網(wǎng)App開發(fā)者都會頻繁用到的功能, 那么大家都是用什么樣的方式在切換環(huán)境的呢?我本人接觸的項目中最多的就是在預編譯頭文件里面寫一行宏定義, 然后根據(jù)宏定義去判斷當前的環(huán)境。

最典型的例子是在預編譯頭pch文件中添加一行代碼#define DEBUG 1。然后通過這個DEBUG參數(shù)去判斷當前環(huán)境是否處于開發(fā)網(wǎng)絡(luò)或者生產(chǎn)網(wǎng)絡(luò)環(huán)境。

使用DEBUG宏去判斷判斷開發(fā)環(huán)境還是生產(chǎn)環(huán)境沒有任何問題, 關(guān)鍵的問題是我們在什么時候去定義這個宏和怎么去動態(tài)配置這個宏。

開發(fā)環(huán)境的切換在代碼中最實用的還是宏定義, 那么我們怎么樣才能夠讓宏定義動態(tài)可配置呢?

其中一種辦法就是使用GCC預編譯頭參數(shù)GCC_PREPROCESSOR_DEFINITIONS。

  1. 添加Build Configuration
    打開項目進入Xcode的主界面。選擇project->info,找到Configuration,點擊下方的“+”。

從圖中可以看到兩個已經(jīng)添加好的Configuration:Debug和Release。
選擇“duplicate debug configuration”,添加一個新的configuration,命名為Test。

  1. 在Project文件下的Build Settings對預編譯宏定義進行默認賦值。在Xcode9下的路徑為Build Settings->Apple LLVM 6.x Preprocessing->Preprocessor Macros

這里添加的DEBUG、Test就會對應(yīng)在項目里生成宏定義。

  1. 新建并配置xcconfig文件

common + "n", 選擇 iOS -> Other -> Configuration settings file

新建4個xxconfig文件,我采用一下命名:

commonConfig中放入通用的配置,另外三個Config放入各自對應(yīng)的配置。
然后在PCH文件中根據(jù)判斷Debug、Test、Release來引人需要的頭文件

#if Test
#import "ReleaseTestConfig.xcconfig"
#elseif DEBUG
#import "DebugConfig.xcconfig"
#else
#import "ReleaseConfig.xcconfig"
#endif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容