一般項目都會分為測試環境和發布環境,常用的做法就是通過代碼來直接修改;這里要說的是通過配置
Configurations
來控制環境變量
在Configurations
中添加配置
點擊?號里面有兩個選項,根據需求自由選擇
Debug configuration
Release configuration
如果項目中用到了
cocoapds
需要pod install
一下
新建Scheme
- 點擊
new Scheme
,新建一個Scheme
- 點擊
target
選中剛才新建的scheme
->Edit Scheme
選擇運行環境,這里可以把Run
模式和Archive
都改成新建Scheme
,如下圖:
新建User-defined Build Settings
回到Project
的Build Settings
里面來,點擊頂部的?號按鈕選擇Add User-Defined Setting
這里新加了2
個參數,CustomAppBundleld
是為了設置多個build identifier
這樣我們就可以打多個包,這里設置了3
個不同的build identifier
;
CustomProductName
是為了app
安裝到手機上顯示不同的名字和icon
。
修改info.plist
文件 和 Images.xcassets
- 修改
info.plist
文件
由于我們需要根據不同的配置環境來顯示不同的APP
名稱,所以我們需要把info.plist
里面的Bundle display name
、Bundle identifier
修改成我們自定義的這個字典;編譯過程中編譯器會根據我們設置好的Scheme
去自己選擇對應的ProductName
和Bundle identifier
- 設置
Images.xcassets
為了根據不同的配置環境來顯示不同的app icon
我們需要在Images.xcassets
里面新添加2
個New iOS App Icon
新建完AppIcon
之后,再在Build Setting
里面找到Asset Catalog Compiler
里面,然后把這幾種模式下的App Icon set Name
分別設置上對應的圖標,如下圖:
配置和獲取環境變量
- 使用
GCC
預編譯頭參數GCC_PREPROCESSOR_DEFINITIONS
進入到Build Settings
搜索preprocessor macros
找到Preprocessor Macros
,我們可以在這里加一些環境變量的宏定義來標識,Preprocessor Macros
可以根據不同的環境預先制定不同定義的宏。
之后我們可以根據我們設置的宏來進行一些邏輯的處理,譬如最簡單的發布環境的url
和測試環境的url