Xcode通過Build Configuration配置多套域名方法

摘要

在我們實(shí)際開發(fā)中剂邮,后臺服務(wù)器一般都會有幾套地址,如:測試乐埠,預(yù)生產(chǎn)抗斤,生產(chǎn)。這時(shí)丈咐,我們項(xiàng)目打不同環(huán)境包時(shí)瑞眼,如果通過注釋代碼或修改域名也是可以達(dá)到目的。但是這樣比較煩鎖還容易出錯(cuò)棵逊。像我們公司伤疙,還有一套性能測試環(huán)境,所有的第三方接口處理都需要屏蔽辆影,如果還這樣來修改徒像,熟悉代碼還好,幾分鐘可以注釋好蛙讥,但是對于一個(gè)不熟悉的同事锯蛀,那么就會顯得舉步最艱難了,于是這篇文章講述下次慢,只通過修改Xcode中scheme的configaration配置項(xiàng)旁涤,選擇你要的環(huán)境,一步切換環(huán)境迫像,簡單實(shí)用且不會出錯(cuò)劈愚。


使用場景

針對不對的域名或環(huán)境,實(shí)現(xiàn)打包或運(yùn)行的代碼不一致闻妓。

步驟
  • 一菌羽、創(chuàng)建一個(gè)configuration


    scheme1.png

    如上圖,一般我們都是直接Duplicate Debug由缆,因?yàn)閞elease模型是不支持?jǐn)帱c(diǎn)調(diào)試的注祖。

  • 二、然后我們就可以在scheme中看到我們新添加的


    scheme2.png

    這里我添加了2個(gè)環(huán)境犁功,一個(gè)Pre為預(yù)生產(chǎn)氓轰,一個(gè)Test為性能測試。分別實(shí)現(xiàn)兩套不同的環(huán)境浸卦。

  • 三署鸡、修改build settings下的Preprocessor Macros下對應(yīng)的值

    scheme3.png

    注意:經(jīng)測試,這一步完全可以省略限嫌,也是可能實(shí)現(xiàn)功能的靴庆。

  • 四、各個(gè)配置下添加自定義標(biāo)簽other swift flags怒医,如下圖

    scheme4.png

    這一步才是重點(diǎn)炉抒,我們代碼中就是通過判斷flags來實(shí)現(xiàn)。
    注意Debug下稚叹,默認(rèn)是有一個(gè)DEBUG標(biāo)簽焰薄,代碼中盡量不要用拿诸,而是用自己自定義的XYJDEBUG,不然選擇其它配置也會跑到DEBUG環(huán)境下的代碼塞茅。


測試

  • 配置選擇,如圖亩码,在run模型下,build configuration選擇不同的配置野瘦,然后運(yùn)行程序描沟,會執(zhí)行對應(yīng)的代碼,如果打包鞭光,在archive模型下吏廉,去選擇build configuration即可。


    scheme5.png
  • 測試示例代碼
#if XYJDEBUG // 測試環(huán)境
let baseUrl = "https://test.baidu.com/"
#elseif Pre // 預(yù)生產(chǎn)
let baseUrl = "https://pre.baidu.com/"
#elseif Test // 性能測試
let baseUrl = "https://functionTest.baidu.com/"
#else // 生產(chǎn)
let baseUrl = "https://app.baidu.com/"
#endif


class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // 測試代碼
        testPrint()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    
    func testPrint() -> Void {
        
        //打印地址
        print("請求的基址為:\(baseUrl)")
        
        #if XYJDEBUG
                print("測試環(huán)境")
        #elseif Pre
                print("Pre環(huán)境")
        #elseif Test
                print("Test性能測試環(huán)境")
        #else // 生產(chǎn)
                print("生產(chǎn)環(huán)境")
        #endif
    }

}

cocoapods報(bào)錯(cuò)

  • 如果項(xiàng)目中使用了cocoapods管理第三方惰许,那么選擇你新創(chuàng)建出來的項(xiàng)目build時(shí)席覆,會報(bào)找不到第三方庫錯(cuò)誤。解決辦法如下:


    configuration.png

寫在最后

很多功能都可以通過這個(gè)實(shí)現(xiàn)多套環(huán)境(通過修改build settings里的一般都可以)啡省,如:appicon,appName,bundleId娜睛,info.plist等。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末卦睹,一起剝皮案震驚了整個(gè)濱河市畦戒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌结序,老刑警劉巖障斋,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異徐鹤,居然都是意外死亡垃环,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門返敬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遂庄,“玉大人,你說我怎么就攤上這事劲赠√文浚” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵凛澎,是天一觀的道長霹肝。 經(jīng)常有香客問我,道長塑煎,這世上最難降的妖魔是什么沫换? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮最铁,結(jié)果婚禮上讯赏,老公的妹妹穿的比我還像新娘垮兑。我一直安慰自己,他們只是感情好漱挎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布甥角。 她就那樣靜靜地躺著,像睡著了一般识樱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上震束,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天怜庸,我揣著相機(jī)與錄音,去河邊找鬼垢村。 笑死割疾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嘉栓。 我是一名探鬼主播宏榕,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼侵佃!你這毒婦竟也來了麻昼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤馋辈,失蹤者是張志新(化名)和其女友劉穎抚芦,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迈螟,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叉抡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了答毫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡消返,死狀恐怖蚕脏,靈堂內(nèi)的尸體忽然破棺而出侦副,到底是詐尸還是另有隱情驼鞭,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布译隘,位于F島的核電站亲桥,受9級特大地震影響固耘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜厅目,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望葫笼。 院中可真熱鬧拗馒,春花似錦路星、人聲如沸诱桂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至九榔,卻和暖如春涡相,著一層夾襖步出監(jiān)牢的瞬間哲泊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工切威, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丙号,地道東北人先朦。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓犬缨,卻偏偏與公主長得像喳魏,于是被迫代替她去往敵國和親怀薛。 傳聞我的和親對象是個(gè)殘疾皇子刺彩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,111評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理创倔,服務(wù)發(fā)現(xiàn)嗡害,斷路器畦攘,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • 【轉(zhuǎn)載】曾夢想仗劍走天涯 1.Xcode IDE概覽 說明:從左到右,依次是“導(dǎo)航窗格(Navigator)->邊...
    06a6a973d7ab閱讀 3,831評論 2 20
  • 1.Xcode IDE概覽 說明:從左到右叹螟,依次是“導(dǎo)航窗格(Navigator)->邊列(Gutter)->焦點(diǎn)...
    小地閱讀 5,363評論 0 9
  • 25歲的年紀(jì)台盯,諸多困惑與迷茫首妖。自己酷似一只信息海洋里的浮游生物爷恳,也許明白自己需要什么象踊,但無奈能力不足,只能憑借環(huán)境...
    腫瘤小白Daisy要努力噠閱讀 419評論 0 0