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)境的呢?我本人接觸的項目中最多的就是在預(yù)編譯頭文件里面寫一行宏定義, 然后根據(jù)宏定義去判斷當(dāng)前的環(huán)境巷送。

最典型的例子是在預(yù)編譯頭pch文件中添加一行代碼#define DEBUG 1。然后通過這個DEBUG參數(shù)去判斷當(dāng)前環(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預(yù)編譯頭參數(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對預(yù)編譯宏定義進行默認(rèn)賦值。在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)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市族铆,隨后出現(xiàn)的幾起案子岩四,更是在濱河造成了極大的恐慌,老刑警劉巖哥攘,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剖煌,死亡現(xiàn)場離奇詭異材鹦,居然都是意外死亡,警方通過查閱死者的電腦和手機耕姊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門桶唐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茉兰,你說我怎么就攤上這事尤泽。” “怎么了规脸?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵坯约,是天一觀的道長。 經(jīng)常有香客問我莫鸭,道長闹丐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任被因,我火速辦了婚禮卿拴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘梨与。我一直安慰自己巍棱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布蛋欣。 她就那樣靜靜地躺著航徙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪陷虎。 梳的紋絲不亂的頭發(fā)上到踏,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音尚猿,去河邊找鬼窝稿。 笑死,一個胖子當(dāng)著我的面吹牛凿掂,可吹牛的內(nèi)容都是我干的伴榔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼庄萎,長吁一口氣:“原來是場噩夢啊……” “哼踪少!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起糠涛,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤援奢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后忍捡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體集漾,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡切黔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了具篇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纬霞。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖驱显,靈堂內(nèi)的尸體忽然破棺而出诗芜,到底是詐尸還是另有隱情,我是刑警寧澤秒紧,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布绢陌,位于F島的核電站,受9級特大地震影響熔恢,放射性物質(zhì)發(fā)生泄漏脐湾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一叙淌、第九天 我趴在偏房一處隱蔽的房頂上張望秤掌。 院中可真熱鬧,春花似錦鹰霍、人聲如沸闻鉴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽孟岛。三九已至,卻和暖如春督勺,著一層夾襖步出監(jiān)牢的瞬間渠羞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工智哀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留次询,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓瓷叫,卻偏偏與公主長得像屯吊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子摹菠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容