在開發過程中,我們一般都在dubug環境下一番輪操,如果需要不時的切換到Release版本下,manage schemes也能輕松的實現正式環境與測試環境的切換.
但是,有一種情況是讓我比較惡心的,作為一名程序狗,代碼敲的正開心呢,測試姐姐嬌嗔到,程序狗哥哥,幫我打個release包吧,五分鐘后,又來一句,幫我打回debug包吧. ?這我也就忍了,畢竟測試不能得罪. 又過了五分鐘,產品又來了,又過了五分鐘,運營又來了,我們公司五個產品經理,兩個運營,想想看,每天耳邊縈繞的都是,程序狗哥哥,打release包吧,程序狗哥哥,打debug包吧,打你大爺,還讓不讓好好敲代碼了...
于是乎做了一個一鍵切換正式服測試服的功能,還自己一個安靜的世界...
最終的效果是這樣的
功能做起來很簡單,但是也很實用.狗狗們,跟我一起走起來...
一.為項目復制一個Target
復制一個target的目的是,我們不能讓用戶也看到切換的按鈕,不然用戶會嚇壞的,所以發包的時候,用正兒八經的target,開發測試的時候,用帶開關的target
1.在當前target右鍵點Duplicate
2.duplicate only
3.雙擊更名
二.創建Setting Bundle
1.創建
創建的時候注意不要勾選release的target,默認是不會勾選的,這樣在release版本下就沒有開關選項啦
2.設置
創建完后默認是這個樣子的
這里刪掉多余的選項,保留Group跟Switch,選中后直接點delete鍵就ok
之后設置group的文案,以及switch開關的鍵值,之后看代碼就知道干啥用的了
3.添加預編譯宏
系統默認會有DEBUG這樣一個預編譯宏,我們需要為release的target添加一個宏來區分開發版本的target,具體操作關鍵點看紅框就能搞定了,注意在debug跟release下都要加
加完后就是這個樣子拉
三.代碼實現
一般我們設置正式環境與測試環境,都是判斷如果是DEBUG下,baseUrl=xxx,否則baseUrl=xxx
現在我們設置一個全局參數,通過參數來設置baseUrl,這里只是簡單展示,所以就在viewDidload里展示想要的效果,測試環境下界面是綠色,正式環境下為紫色.默認是測試環境
四.最終效果
開發時我們在KKKiller下捯飭,發布時在KKKiller
在設置里面找到你的app,里面多了一個開關選項,切換后重啟,就能生效啦,在release的target下就沒有這個開關,這樣用戶就不會被嚇壞了
需要注意的是,創建兩個target之后,創建文件,默認是會選中第一個target,為了保證兩個版本都能正常允許,在創建文件的時候,我們需要把兩個target都勾選上
如果忘了也沒關系,可以這樣補救
在創建target 的時候,因為是通過copy的方式創建的,所以之前的文件都已經默認勾選上了,新創建的就需要我們手動創建
ok 大功告成,去廁所擼一發慶祝一下吧!~~~~