[iOS 開發(fā)] 如何針對不同環(huán)境配置 info.plist 中的信息?

前言
在代碼中,我們可以通過 #ifdef DEBUG 宏定義來針對不同環(huán)境做不同設(shè)置,但是對于 info.plist 中的屬性,我們又該如何針對不同環(huán)境(DEBUG vs RELEASE)做不同配置呢?

前兩天,在適配 HTTPS 時,由于我們的測試環(huán)境服務(wù)器沒有啟用 HTTPS,只有正式環(huán)境的服務(wù)器啟用了 HTTPS ,所以在項目中需要針對不同環(huán)境做不同的 ATS 配置處理。這個配置也涉及到 info.plist 中 ATS 相關(guān)屬性的修改,這也就引出了 info.plist 是否可以動態(tài)配置的問題了。

一開始,我想 info.plist 本質(zhì)上是一個 XML 文件,那么 XML文件中可不可以通過 #ifdef DEBUG 宏定義來動態(tài)配置呢?然后我就嘗試了一下這種做法,結(jié)果編譯不通過。實踐證明此方法不可行。

然后,我又想 build setting 中不是可以分別設(shè)置 debug 和 release 模式下的一些參數(shù)么,于是到 build setting 中搜索了一下 info.plist,沒想到還真有這個模塊,release 和 debug 模式的默認(rèn)值都是 info.plist。

接下來,我自己也復(fù)制了一個 info.plist,并改名 infoDebug.plist,然后修改了一些針對 debug 模式的參數(shù),最后回到 build setting 中,將對應(yīng)的選項值改為 infoDebug.plist,Command+B 編譯一下之后,大功告成!

info.plist for DEBUG mode.jpeg
info.plist for RELEASE mode.jpeg
info.plist configuration in build setting.jpeg

除此之外,如果我們?nèi)绻枰獎討B(tài)配置開發(fā)或者生產(chǎn)網(wǎng)絡(luò)環(huán)境, 以及在多項目和運行中切換環(huán)境,可以借助 Xcode 配置文件 xcconfig 來實現(xiàn)。

參考資料
1.Xcconfig變量設(shè)置說明: http://www.itdecent.cn/p/44c82630bd50

2.iOS開發(fā)必備 - 環(huán)境變量配置(Debug & Release): http://blog.startry.com/2015/07/24/iOS_EnvWithXcconfig/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容