【項目之初我們采用Build configuration 配置多種環(huán)境,但是最后我會介紹一下我們現(xiàn)在用的方式,也是我認為最靈活方便的方式】
1、why 為什么需要配置多種項目環(huán)境
在實際開發(fā)中,項目需要經(jīng)過多個環(huán)境的測試,才能上架到應用市場。
一般都是如下過程
?開發(fā)環(huán)境->測試環(huán)境->預上線環(huán)境->正式環(huán)境
因此僅僅debug與release兩套環(huán)境無法滿足我們多個環(huán)境多個域名的要求。
除此之外,項目進入正式環(huán)境測試階段,還會提交到Testin平臺進行測試,因為項目中使用到了聽云、網(wǎng)宿等SDK,不希望測試數(shù)據(jù)影響到正式環(huán)境,因此APP端release狀態(tài)也需要區(qū)分。這么多的環(huán)境,如果每次打包都要修改代碼很容易混亂出錯,因此Build configuration能很好的給我們解決問題。
2、how 如何配置多種環(huán)境
①選擇PROJECT->info 找到configuration。點擊加好進行添加。首先duplicate debug。

創(chuàng)建結(jié)果如下

②然后我們針對每種環(huán)境設置預處理宏
第一步 :設置Preprocessor Macros?

第二步:設置Swift Compiler - Custom Flags
如圖4設置Active Compilation Conditions,也可以設置OTHER_SWIFT_FLAGS 注意參數(shù)前需要加-D。

如果是純swift的項目 只需要設置第二步就可以。
③設置完參數(shù)寫代碼測試一下,圖5

④修改build configuration 對各個環(huán)境進行測試

運行結(jié)果:

其余環(huán)境各位可以自己寫demo測試一下。
3、回到本文第一行,我說過還有其他的方式更便捷【需要服務端配合】
在介紹之前結(jié)合公司的項目解釋一下為什么
①設置build configuration 能把我們從繁瑣的修改代碼中解脫出來,但是還是需要針對每種環(huán)境打出不同的測試包,還是覺得麻煩。
②我們開發(fā)的APP是原生與HTML的混合應用,資源文件與接口部署在不同服務器,很多時候資源文件需要獨立上線,但是移動端代碼并沒有修改!
③如果接口在測試環(huán)境,資源在預上線環(huán)境,通過設置build configuration根本無法解決。
④移動端對于Dev,Test,PreRelease環(huán)境只存在接口地址域名的差異。
那么我們最理想的情況應該是,Dev,Test,PreRelease這三種情況我們不需要修改任何配置項,一個IPA包就能測試到這三種情況。
因此我們現(xiàn)在是這么做的:
不同的服務器相同的項目對外的域名都是一樣的,在開發(fā)測試階段只需要修改域名對應的IP從而選擇不同的測試環(huán)境。
推薦兩個應用


使用SwitchHosts指定host

然后配合Charles抓包工具,簡直好用到不行。
總結(jié):移動端不需要修改代碼的情況可以使用SwitchHosts切換不同測試環(huán)境。若有上述聽云、網(wǎng)宿等SDK開關(guān)控制問題,可以設置build configuration 以及 preprocessor macros配合解決。
【特別】使用cocoapods 管理項目的可以編輯podfile設置build configuration、 preprocessor macros 和OTHER_SWIFT_FLAGS等。
上圖簡單介紹下

pod install 成功之后如圖12

以上就是這次的全部內(nèi)容,喜歡請關(guān)注??