前言
在代碼中洒擦,我們可以通過(guò)#ifdef DEBUG
宏定義來(lái)針對(duì)不同環(huán)境做不同設(shè)置,但是對(duì)于 info.plist 中的屬性怕膛,我們又該如何針對(duì)不同環(huán)境(DEBUG vs RELEASE)做不同配置呢熟嫩?
前兩天,在適配 HTTPS 時(shí)褐捻,由于我們的測(cè)試環(huán)境服務(wù)器沒(méi)有啟用 HTTPS掸茅,只有正式環(huán)境的服務(wù)器啟用了 HTTPS ,所以在項(xiàng)目中需要針對(duì)不同環(huán)境做不同的 ATS 配置處理柠逞。這個(gè)配置也涉及到 info.plist 中 ATS 相關(guān)屬性的修改昧狮,這也就引出了 info.plist 是否可以動(dòng)態(tài)配置的問(wèn)題了。
一開始边苹,我想 info.plist 本質(zhì)上是一個(gè) XML 文件陵且,那么 XML文件中可不可以通過(guò) #ifdef DEBUG
宏定義來(lái)動(dòng)態(tài)配置呢?然后我就嘗試了一下這種做法,結(jié)果編譯不通過(guò)慕购。實(shí)踐證明此方法不可行聊疲。
然后,我又想 build setting 中不是可以分別設(shè)置 debug 和 release 模式下的一些參數(shù)么沪悲,于是到 build setting 中搜索了一下 info.plist获洲,沒(méi)想到還真有這個(gè)模塊,release 和 debug 模式的默認(rèn)值都是 info.plist殿如。
接下來(lái)贡珊,我自己也復(fù)制了一個(gè) info.plist,并改名 infoDebug.plist涉馁,然后修改了一些針對(duì) debug 模式的參數(shù)门岔,最后回到 build setting 中,將對(duì)應(yīng)的選項(xiàng)值改為 infoDebug.plist烤送,Command+B 編譯一下之后寒随,大功告成!
除此之外帮坚,如果我們?nèi)绻枰獎(jiǎng)討B(tài)配置開發(fā)或者生產(chǎn)網(wǎng)絡(luò)環(huán)境, 以及在多項(xiàng)目和運(yùn)行中切換環(huán)境妻往,可以借助 Xcode 配置文件 xcconfig 來(lái)實(shí)現(xiàn)。
參考資料:
1.Xcconfig變量設(shè)置說(shuō)明: http://www.reibang.com/p/44c82630bd50
2.iOS開發(fā)必備 - 環(huán)境變量配置(Debug & Release): http://blog.startry.com/2015/07/24/iOS_EnvWithXcconfig/