現(xiàn)在的項(xiàng)目里面創(chuàng)建了多個(gè)target(分別是:生產(chǎn)環(huán)境、測(cè)試環(huán)境、開發(fā)環(huán)境),每個(gè)target對(duì)應(yīng)一個(gè)環(huán)境,并配置不同的info.plist文件,這樣做的好處是不用開發(fā)人員每次都要去手動(dòng)開啟/注釋某些代碼去發(fā)布,而是先配置好,到時(shí)候直接切換target就可以打包上線了,是不是很期待呢?
創(chuàng)建不同的target
直接貼圖


點(diǎn)擊完成后,將名稱改為projectName-dev和projectName-test,默認(rèn)的projectName當(dāng)生產(chǎn)環(huán)境。
??:創(chuàng)建不同的target時(shí),有個(gè)細(xì)節(jié)需要注意,那就是你的項(xiàng)目如果是xcworkspace時(shí),先pod install后再去按照貼圖上面的操作去完成,否則,先創(chuàng)建再pod install,projectName-dev和projectName-test就會(huì)出現(xiàn)報(bào)錯(cuò),報(bào)錯(cuò)原因是pod的配置信息沒完成或文件路徑?jīng)]索引到(我之前就遇到過,試了好多次,還好經(jīng)過測(cè)試跳過了這個(gè)坑,??)。
改名稱
targets分別改成:<#projectName#>、<#projectName#>-dev、<#projectName#>-test
scheme也分別改成:<#projectName#>、<#projectName#>-dev、<#projectName#>-test
info.plist分別改成:info.plist、<#projectName#>-dev-info.plist、<#projectName#>-test-info.plist

??:
1、這里的三個(gè)環(huán)境都是一一對(duì)應(yīng)的。
2、.plist的作用就是可以配置不同的信息,比如:Bundle name、Bundle versions string, short、Bundle version等,以區(qū)分下不同環(huán)境。
別忘了在build setting–>Info.plist File配置
例如:
//:configuration = DebugINFOPLIST_FILE = IOS-WeidaiCreditLoan/IOS-WeidaiCreditLoan-dev-Info.plist
//:configuration = ReleaseINFOPLIST_FILE = IOS-WeidaiCreditLoan/IOS-WeidaiCreditLoan-dev-Info.plist
//:completeSettings = someINFOPLIST_FILE
預(yù)定義宏(Build Setting–>Preprocessor Macros)
這個(gè)宏是一個(gè)全局宏,在所有/整個(gè)工程的代碼中都是有效的,我們可以在這里添加上環(huán)境與處理的宏(例如:WD_Environment_Mode,這個(gè)是隨便自己取的)

然后在.pch文件中
/**
WD_Environment_Mode
0:生產(chǎn)環(huán)境
1:測(cè)試環(huán)境
2:開發(fā)環(huán)境
*/#ifdef WD_Environment_Mode
#ifWD_Environment_Mode == 0
#defineWDAPIServerUrl ??@""
#defineJSPatchAppKey ? ??@""
#elifWD_Environment_Mode == 1
#defineWDAPIServerUrl @""
#defineJSPatchAppKey? @""
#elifWD_Environment_Mode == 2
#defineWDAPIServerUrl @""
#defineJSPatchAppKey? @""
#else
#warning"未匹配環(huán)境"
#endif
到此,在項(xiàng)目中創(chuàng)建多個(gè)target的目的就已經(jīng)達(dá)到了。
iOS技術(shù)交流:566912706