iOS App配置多個(gè)環(huán)境變量

一般項(xiàng)目都會(huì)分為測(cè)試環(huán)境和發(fā)布環(huán)境,常用的做法就是通過代碼來直接修改;這里要說的是通過配置Configurations來控制環(huán)境變量

Configurations中添加配置

點(diǎn)擊?號(hào)里面有兩個(gè)選項(xiàng),根據(jù)需求自由選擇

  • Debug configuration
  • Release configuration
新增Configuration

如果項(xiàng)目中用到了cocoapds需要pod install一下

新建Scheme

  • 點(diǎn)擊new Scheme,新建一個(gè)Scheme
新建Scheme
new scheme
  • 點(diǎn)擊target選中剛才新建的scheme -> Edit Scheme選擇運(yùn)行環(huán)境,這里可以把Run模式和Archive都改成新建Scheme,如下圖:
設(shè)置scheme環(huán)境

新建User-defined Build Settings

回到ProjectBuild Settings里面來,點(diǎn)擊頂部的?號(hào)按鈕選擇Add User-Defined Setting

Add User-Defined Setting
User-Defined

這里新加了2個(gè)參數(shù),CustomAppBundleld是為了設(shè)置多個(gè)build identifier這樣我們就可以打多個(gè)包,這里設(shè)置了3個(gè)不同的build identifier;
CustomProductName是為了app安裝到手機(jī)上顯示不同的名字和icon。

修改info.plist文件 和 Images.xcassets

  • 修改info.plist文件

由于我們需要根據(jù)不同的配置環(huán)境來顯示不同的APP名稱,所以我們需要把info.plist里面的Bundle display nameBundle identifier修改成我們自定義的這個(gè)字典;編譯過程中編譯器會(huì)根據(jù)我們?cè)O(shè)置好的Scheme去自己選擇對(duì)應(yīng)的ProductNameBundle identifier

修改info.plist文件
  • 設(shè)置Images.xcassets

為了根據(jù)不同的配置環(huán)境來顯示不同的app icon我們需要在Images.xcassets里面新添加2個(gè)New iOS App Icon

新增app icon

新建完AppIcon之后,再在Build Setting里面找到Asset Catalog Compiler里面,然后把這幾種模式下的App Icon set Name 分別設(shè)置上對(duì)應(yīng)的圖標(biāo),如下圖:

設(shè)置App Icon

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

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

進(jìn)入到Build Settings搜索preprocessor macros找到Preprocessor Macros,我們可以在這里加一些環(huán)境變量的宏定義來標(biāo)識(shí),Preprocessor Macros可以根據(jù)不同的環(huán)境預(yù)先制定不同定義的宏。

Preprocessor Macros

之后我們可以根據(jù)我們?cè)O(shè)置的宏來進(jìn)行一些邏輯的處理,譬如最簡(jiǎn)單的發(fā)布環(huán)境的url和測(cè)試環(huán)境的url

最后附上效果圖

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

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