如何爲你的App配置多環境變量

參考文章 手把手教你iOS 一個app配置多環境變量git

有時爲了開發需求,項目中常常要用到多種環境配置,好比開發環境,測試環境,預發環境,以及正式環境等,對於這個問題,一開始想到的是在pch中用一個變量去控制,每次打包都去修改這個變量的值,歷來來達到實現不一樣環境的配置,但這種方式明顯太Low,xcode能夠在同一個app中設置不一樣的環境變量(系統默認的是DEBUG和release兩種模式),文末會附上demo的github地址github

#if DEBUG

#else

#endif
複製代碼

這種寫法想必你們都不陌生,那麼咱們若是想增長別的變量,實現相似這種去控制運行環境,該如何實現呢?下面我先描述下如何新增相似DEBUG這種配置變量。xcode

1、第一步

以下幾個圖bash

01

到project-> info中增長你想要定製的環境變量配置app

02

  • 注意,若是有cocoapods,這裏增添後要進行一次pod install,pods會自動去配置相關的環境

2、第二步

02-01

到project-build settings中搜索preprocessor macros,修改裏面的配置以下:測試

02-02

這裏要加上${inherited},不然在進行Pod install或者編譯的時候會有警告,最終的樣式以下:ui

02-03

那麼進行到這裏,就能夠再項目中 用了spa

3、第三步

03-01

到edit schemes -> run中,能夠看到build configurations多了兩個,這裏就能夠切換不一樣的環境3d

03-02

到如今爲止,就能夠根據不一樣的環境設置不一樣的值:code

03-03

03-04

03-05

以上幾個圖已經代表一切

那麼,若是想要實現不一樣環境下不一樣的app名稱或者一個手機上能夠安裝多個版本的app,那又該如何設置呢?下面主要講述這一點:

第四步

05-01

project->build settings店家加號,add user-defnied setting

05-02

好比增長了一個ProductDisplayName,下面四個能夠設置對應的名稱

05-03

以後再info.plist中修改默認的名稱爲$(ProductDisplayName)便可

此外,爲了方便還能夠新增schemes

05-04

點擊這個,能夠新增對應的schemes

05-05

檢查下schemes配置,經過manage shcemes入口進入:

05-06

右側只要都選中就好

下面看下target-general

05-07

這裏的app名稱已經設置爲本身定義的了

05-08
以後在各自的scheme中的run-build configurations中設置對應的運行環境

05-09

05-10

05-11

05-12

對於一個手機上安裝多個不一樣環境的app也是如此,只須要在add user-defined setting中增長一組配置去設置bundle id,而且把info.plist中的Bundle Identifier替換爲本身設置的便可,替換方式和name替換方式同樣

  • 若是有cocoapods,必定要注意pod install,不然會報錯

demo地址

相關文章
相關標籤/搜索