參考文章 手把手教你iOS 一個app配置多環境變量git
有時爲了開發需求,項目中常常要用到多種環境配置,好比開發環境,測試環境,預發環境,以及正式環境等,對於這個問題,一開始想到的是在pch中用一個變量去控制,每次打包都去修改這個變量的值,歷來來達到實現不一樣環境的配置,但這種方式明顯太Low,xcode能夠在同一個app中設置不一樣的環境變量(系統默認的是DEBUG和release兩種模式),文末會附上demo的github地址github
#if DEBUG
#else
#endif
複製代碼
這種寫法想必你們都不陌生,那麼咱們若是想增長別的變量,實現相似這種去控制運行環境,該如何實現呢?下面我先描述下如何新增相似DEBUG這種配置變量。xcode
以下幾個圖bash
到project-> info中增長你想要定製的環境變量配置app
到project-build settings中搜索preprocessor macros,修改裏面的配置以下:測試
這裏要加上${inherited},不然在進行Pod install或者編譯的時候會有警告,最終的樣式以下:ui
那麼進行到這裏,就能夠再項目中 用了spa
到edit schemes -> run中,能夠看到build configurations多了兩個,這裏就能夠切換不一樣的環境3d
到如今爲止,就能夠根據不一樣的環境設置不一樣的值:code
以上幾個圖已經代表一切
那麼,若是想要實現不一樣環境下不一樣的app名稱或者一個手機上能夠安裝多個版本的app,那又該如何設置呢?下面主要講述這一點:
project->build settings店家加號,add user-defnied setting
好比增長了一個ProductDisplayName,下面四個能夠設置對應的名稱
以後再info.plist中修改默認的名稱爲$(ProductDisplayName)便可
此外,爲了方便還能夠新增schemes
點擊這個,能夠新增對應的schemes
檢查下schemes配置,經過manage shcemes入口進入:
右側只要都選中就好
下面看下target-general
這裏的app名稱已經設置爲本身定義的了
以後在各自的scheme中的run-build configurations中設置對應的運行環境對於一個手機上安裝多個不一樣環境的app也是如此,只須要在add user-defined setting中增長一組配置去設置bundle id,而且把info.plist中的Bundle Identifier替換爲本身設置的便可,替換方式和name替換方式同樣