我基本是參考http://www.itdecent.cn/p/83b6e781eb51這篇文章的,這里只是記錄一下使用流程,捋一捋自己的思路。
現(xiàn)在開發(fā)APP起碼有測試環(huán)境和正式環(huán)境,有條件的可能還有驗收環(huán)境,預(yù)發(fā)布環(huán)境等等,
怎么方便的切換環(huán)境其實還是值得考慮一下的。
之前我自己一直是通過宏定義來切換,其實還算方便,改個宏定義的值就可以切換,
唯一不爽的是切換環(huán)境以后重新build要花很長時間,長到不能忍!
所以看到上面的文章后,立馬實踐了一下,
結(jié)論是:完全值得這么一折騰,可以說是一勞永逸的好方法。
流程如上面文章所說,我自己的實際情況如下:
1,我這里有三個環(huán)境,測試,預(yù)發(fā)布,正式,所以建了.test , .pre , .normal 三個scheme;
2,每個scheme都有debug和release之分,所以這里一共要有6個build configuration;
我這里是把Xcode自建的兩個build configuration (debug和release)作為正式環(huán)境的兩個 配置,
再分別復(fù)制兩份,分別作為測試和預(yù)發(fā)布環(huán)境的 debug和release,
這里需要edit scheme來修改,是最最重要的地方

3,我這里只提供了第三方登錄(qq,微信,微博),而第三方登錄的key都是要和bundleId綁定的,
所以沒法區(qū)分不同的bundleId,否則就沒辦法登錄了,所以顯示不同的app名字意義也不大,
就通通沒有做,如要要做,也就是添加userDefined Setting,應(yīng)該不難
4,不同環(huán)境的區(qū)分,其實就是url的不同,我這里是用宏定義來區(qū)分,
在一個統(tǒng)一的地方定義好

然后在配置buildConfiguration設(shè)置不同的宏定義即可

5,這里需要特別注意的是 scheme和buildConfiguration的關(guān)系
buildConfiguration是整個APP的配置,不同的配置就可以產(chǎn)生不同的效果(我們這里就是產(chǎn)生不同環(huán)境的APP)
而scheme是指target,buildConfiguration和test集合,可以理解為一個對應(yīng)關(guān)系;
也就是說:
scheme決定了APP使用哪個配置來build,我們通過決定使用哪個scheme來決定最終使用了哪個環(huán)境!