Xcode使用Build configuration 配置多種項目環(huán)境

【項目之初我們采用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。

圖1

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

圖2

②然后我們針對每種環(huán)境設置預處理宏

第一步 :設置Preprocessor Macros?

圖3

第二步:設置Swift Compiler - Custom Flags

如圖4設置Active Compilation Conditions,也可以設置OTHER_SWIFT_FLAGS 注意參數(shù)前需要加-D。

圖4

如果是純swift的項目 只需要設置第二步就可以。

③設置完參數(shù)寫代碼測試一下,圖5

圖5

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

圖6

運行結(jié)果:

圖7

其余環(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)境。

推薦兩個應用

圖8
圖9


使用SwitchHosts指定host

圖10

然后配合Charles抓包工具,簡直好用到不行。

總結(jié):移動端不需要修改代碼的情況可以使用SwitchHosts切換不同測試環(huán)境。若有上述聽云、網(wǎng)宿等SDK開關(guān)控制問題,可以設置build configuration 以及 preprocessor macros配合解決。

【特別】使用cocoapods 管理項目的可以編輯podfile設置build configuration、 preprocessor macros 和OTHER_SWIFT_FLAGS等。

上圖簡單介紹下

圖11

pod install 成功之后如圖12

圖12

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

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

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

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