iOS APP 多環(huán)境配置

談到多環(huán)境,相信現(xiàn)在大多公司都至少有2-3個app環(huán)境了,比如Test環(huán)境,預(yù)發(fā)環(huán)境環(huán)境,Release環(huán)境等等。當(dāng)需要開發(fā)打多個包的時候,一般常見做法就是直接代碼里面修改環(huán)境變量,改完之后Archive一下就打包了。當(dāng)然這種做法很正確,只不過不是很優(yōu)雅很高效。如果搭建好了Jenkins(搭建教程),我們利用它來優(yōu)雅的打包。如果利用Jenkins來打包,我們就需要來給app來配置一下多個環(huán)境變量了。之后Jenkins分別再不同環(huán)境下自動集成即可。所以也方便了很多。

一.利用Build Configuration來配置多環(huán)境

由于需要配置多個環(huán)境,并且多個環(huán)境都需要安裝到手機上,那么可以配置Build Configuration來完成這個任務(wù)。如果Build Configuration還不熟悉的,可以先溫習(xí)一下官方文檔。

先點擊Project里面找到Configuration,然后選擇添加,這里新加一個Configuration。系統(tǒng)默認(rèn)是2個,一個Debug,一個Release。這里我們需要選擇是復(fù)制一個Debug還是Release。Release和Debug的區(qū)別是,Release是不能調(diào)試程序,因為默認(rèn)是屏蔽了可調(diào)試的一些參數(shù),具體可以看BuildSetting里面的區(qū)別,而且Release編譯時有做編譯優(yōu)化,會比用Debug打包出來的體積更小一點。


這里我們選擇一個Duplicate “Debug” Configuration,因為我們新的環(huán)境需要debug,添加完了之后就會多了一套Configuration了,這一套其實是包含了一些編譯參數(shù)的配置集合。如果此時項目里面有cocopods的話,打開Configuration Set就會發(fā)現(xiàn)是如下的樣子:

注意:剛剛新建完Build Configuration之后,這時如果有pod,請立即執(zhí)行一下

pod install

如果沒用pod,可以忽略一下這一段。

2. 新建User-defined Build Settings

再次回到Project的Build Settings里面來,Add User-Defined Setting。

我們這里新加入2個參數(shù),CustomAppBundleld是為了之后打包可以分開打成多個包,這里需要3個不同的Id,建議是直接在原來的Bundleld加上Configuration的名字即可。

CustomProductName是為了app安裝到手機上之后,手機上顯示的名字,這里可以按照對應(yīng)的環(huán)境給予描述,例如:測試,線上等等。

修改info.plist文件 和 Images.xcassets

由于我們新添加了2個CustomAppBundleld 和 CustomProductName,這里我們需要把info.plist里面的Bundle display name修改成我們自定義的這個字典。編譯過程中,編譯器會根據(jù)我們設(shè)置好的Scheme去自己選擇Debug,Release,TestRelease分別對應(yīng)的ProductName,如下圖所示:

3. 配置和獲取環(huán)境變量

接下來講幾種動態(tài)配置環(huán)境變量的方法

1. 使用GCC預(yù)編譯頭參數(shù)GCC_PREPROCESSOR_DEFINITIONS

我們進入到Build Settings里面,可以找到Apple LLVM Preprocessing,這里我們可以找到Preprocessor Macros在這里,我們是可以加一些環(huán)境變量的宏定義來標(biāo)識符。Preprocessor Macros可以根據(jù)不同的環(huán)境預(yù)先制定不同定義的宏。

如上圖,AdHoc = 1 ,DEBUG = 1 ,RELEASE = 1;

有了這些我們預(yù)先設(shè)置的標(biāo)識符之后,我們就可以在代碼里面寫入如下的代碼了。同時可以配置不同的環(huán)境的域名,統(tǒng)計,很多參數(shù)在不同環(huán)境的配置。

我們可以選擇工程中的Config,然后點擊Edit scheme, 如圖所示:


然后在運行時,就可以選擇Run ,Info -> Buidl Configuration 中就可以看到之前設(shè)置的Debug , AdHoc , Relaese ,這樣就可以配置不同的環(huán)境了,不同參數(shù)的設(shè)定都可以根據(jù)自定義的進行配置,如果打包,也可以選擇Archive ,Build configuration 中也可以設(shè)置Debug , AdHoc ,Release等環(huán)境。

選擇不同的run 的Configuration,運行如下結(jié)果,

可以參考如下demo :iOS 多環(huán)境配置Demo

最后編輯于
?著作權(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)容