前言
現(xiàn)在很多公司的環(huán)境有開發(fā)環(huán)境鲫惶、仿真環(huán)境、生產(chǎn)環(huán)境 那么如何在一個項目中適應(yīng)多種編譯環(huán)境呢
利用Build Configuration來配置多環(huán)境
新建Build Configuration
先點擊Project里面找到Configuration猾编,然后選擇添加,這里新加一個Configuration空另。系統(tǒng)默認是2個,一個Debug,一個Release。這里我們需要選擇是復(fù)制一個Debug或者Release城看。Release和Debug的區(qū)別是,Release是不能調(diào)試程序杏慰,因為默認是屏蔽了可調(diào)試的一些參數(shù)测柠,具體可以看BuildSetting里面的區(qū)別,而且Release編譯時有做編譯優(yōu)化逃默,會比用Debug打包出來的體積更小一點鹃愤。
這里我們選擇一個Duplicate “Debug” Configuration,因為我們新的環(huán)境需要debug完域,添加完了之后就會多了一套Configuration了
注意:剛剛新建完Build Configuration之后,這時如果有pod瘩将,請立即執(zhí)行一下
新建完Build Configuration吟税,這個時候需要新建pod里面對應(yīng)的Build Configuration,要不然一會編譯會報錯姿现。如果沒用pod肠仪,可以忽略一下這一段。 新建一個對應(yīng)之前Porject里面新建的Build Configuration
新建Scheme
為新的Configuration新建一個編譯Scheme备典。
新建完成之后异旧,我們就可以編輯剛剛新建的Scheme,這里可以把Run模式和Archive都改成新建Scheme提佣。如下圖:
注意:如果是使用了Git這些協(xié)同工具的同學(xué)這里還需要把剛剛新建的Scheme共享出去吮蛹,否則其他人看不到這個Scheme。選擇“Manage Schemes”
新建User-defined Build Settings
再次回到Project的Build Settings里面來拌屏,Add User-Defined Setting潮针。
我們這里新加入2個參數(shù),CustomAppBundleld是為了之后打包可以分開打成多個包倚喂,這里需要3個不同的Id每篷,建議是直接在原來的Bundleld加上Scheme的名字即可。
這里值得提到的一點是端圈,下面Pods的Build_DIR這些目錄其實是Pods自己生成好的焦读,之前執(zhí)行過Pod install 之后,這里默認都是配置好的舱权,不需要再改動了矗晃。
修改info.plist文件
由于我們新添加了2個CustomAppBundleld 和 CustomProductName,這里我們需要把info.plist里面的Bundle display name修改成我們自定義的這個字典刑巧。編譯過程中喧兄,編譯器會根據(jù)我們設(shè)置好的Scheme去自己選擇Debug无畔,Release
配置和獲取環(huán)境變量
使用GCC預(yù)編譯頭參數(shù)GCCPREPROCESSORDEFINITIONS
我們進入到Build Settings里面,可以找到Apple LLVM Preprocessing吠冤,這里我們可以找到Preprocessor Macros在這里浑彰,我們是可以加一些環(huán)境變量的宏定義來標識符。Preprocessor Macros可以根據(jù)不同的環(huán)境預(yù)先制定不同定義的宏拯辙。
打包咯
參考:https://halfrost.com/ios_multienvironments/