iOS使用Target如何快速科學(xué)的區(qū)分開(kāi)發(fā)環(huán)境詳解
前言
本文主要給大家介紹了關(guān)于iOS利用Target區(qū)分開(kāi)發(fā)環(huán)境的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。
什么是區(qū)分開(kāi)發(fā)環(huán)境:
請(qǐng)求的域名+第三方SDK賬號(hào)的不同。
- 請(qǐng)求的域名-->因?yàn)殚_(kāi)發(fā)環(huán)境和正式環(huán)境的服務(wù)器和數(shù)據(jù)庫(kù)基本上都不是同一個(gè)。
- 第三方SDK賬號(hào)-->第三方SDK需要賬號(hào)區(qū)分防止開(kāi)發(fā)測(cè)試數(shù)據(jù)污染正式環(huán)境
(推送+友盟統(tǒng)計(jì)是最明顯的例子)
這篇文章要點(diǎn):
- 如何使用Target去區(qū)分開(kāi)發(fā)環(huán)境
- 如何在1的基礎(chǔ)上面巧妙的區(qū)分第三方SDK的賬號(hào)
最終目的
在打包的時(shí)候切換對(duì)應(yīng)環(huán)境的Target進(jìn)行編譯即可獲得對(duì)應(yīng)的安裝包。
引子:
開(kāi)發(fā)APP區(qū)分環(huán)境是必不可少的話題,從 開(kāi)發(fā)測(cè)試環(huán)境->pr環(huán)境->生產(chǎn)環(huán)境,甚至更多的環(huán)境,如何快速的進(jìn)行管理是一個(gè)值得探討的話題。
不少項(xiàng)目在這方面好像沒(méi)有一個(gè)很好的解決方案導(dǎo)致項(xiàng)目到后期的時(shí)候第三方SDK的混亂以及各個(gè)環(huán)境之間的相互污染。雖然很多SDK已經(jīng)提前給出了測(cè)試機(jī)的注冊(cè)等等方案,但是個(gè)人覺(jué)得還是比較麻煩。所以我們公司在很早的時(shí)候iOS小組一起討論出下面這種方案。已經(jīng)在我們公司的后期開(kāi)發(fā)的多個(gè)APP進(jìn)行使用。
下面開(kāi)始講講我們公司的解決方案吧(文章底部有Demo鏈接)
1.建立項(xiàng)目
2.將項(xiàng)目的target更改為dev環(huán)境的
3.建立管理第三方平臺(tái)的類(lèi)目
這張有疑問(wèn)不要緊,步驟完成后會(huì)詳細(xì)講解
4.建立APPStore環(huán)境下對(duì)應(yīng)的Target
在開(kāi)發(fā)環(huán)境的Target上面右鍵Duplicate一個(gè)新的Target,并且修改Target名稱(chēng)為CBTDisTingGuishAppStoreEnvironment
5.修改Plist文件,對(duì)應(yīng)上正確的Target
這時(shí)候你會(huì)看到多生成了一個(gè)Plist文件,不同的Target的Plist文件不共享我們需要修改這個(gè)Plist的對(duì)應(yīng)關(guān)系以及名字。在修改plist名字的時(shí)候你會(huì)發(fā)現(xiàn)Target下面的對(duì)應(yīng)的plist都空了,這時(shí)候就可以選擇對(duì)應(yīng)的plist文件了。
下面是新建好對(duì)應(yīng)關(guān)系的Target和Plist文件
6.ManagerScheme
修改對(duì)應(yīng)的scheme名字,用于更好的辨認(rèn)APP環(huán)境
7.上面步驟完成之后,打包之用切換Target進(jìn)行編譯即可獲取對(duì)應(yīng)環(huán)境的APP
(demo里面切換環(huán)境運(yùn)行打印,你會(huì)發(fā)現(xiàn)得到的是不同的結(jié)果)
這里來(lái)解釋一下這個(gè)方案的核心
文件
a.分別定義兩個(gè)環(huán)境的BundleID對(duì)應(yīng)的宏
b.定義了一個(gè)能夠在不同環(huán)境下面獲取到對(duì)應(yīng)環(huán)境BundleID的宏
c.定義根據(jù)不同環(huán)境區(qū)分不同的請(qǐng)求地址
d.定義根據(jù)不同環(huán)境區(qū)分不同的sdk區(qū)域
用法:
kGetuiConfig[kBundleID][@"AppID"]
假設(shè)現(xiàn)在APP環(huán)境處于測(cè)試環(huán)境
kGetuiConfig是一個(gè)字典
kGetuiConfig[kBundleID] 是如圖字典
kGetuiConfig[kBundleID][@"AppID"]--> ebCsh9J11111111GhSZ9Hb5
如果你覺(jué)得有點(diǎn)繞是正常的,多看兩遍就知道了。
踩過(guò)的坑和注意點(diǎn)
1、第三方SDK去注冊(cè)賬號(hào)需要區(qū)分BundleID的時(shí)候,這時(shí)候一定需要?jiǎng)?chuàng)建兩個(gè)賬號(hào)(n個(gè)環(huán)境n個(gè)賬號(hào)),其他不需要區(qū)分BundleID的,盡量創(chuàng)建兩個(gè)賬號(hào),這樣區(qū)分環(huán)境才有意義。
2、不同Target必須要對(duì)應(yīng)不同的Plist,需要進(jìn)行配置,如果實(shí)在搞不清楚,就刪除所有的Plist,然后重新添加,這樣Target上面對(duì)應(yīng)的pilst為空的時(shí)候就能進(jìn)行選擇配置。
3、添加新類(lèi)的的時(shí)候記得勾選上兩個(gè)Target
4、Target進(jìn)行Duplicate的時(shí)候會(huì)復(fù)制所有的代碼。但是plist不共享。
源碼下載:
github下載地址:點(diǎn)擊這里
本地下載地址:http://xiazai.jb51.net/201712/yuanma/CBTDisTingGuishDevEnvironment(jb51.net).rar
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
IOS 中l(wèi)oadView,viewDidLoad,viewDidUnload詳解及使用
這篇文章主要介紹了IOS 中l(wèi)oadView,viewDidLoad,viewDidUnload詳解及使用的相關(guān)資料,需要的朋友可以參考下2017-02-02iOS App設(shè)計(jì)模式開(kāi)發(fā)之適配器模式使用的實(shí)戰(zhàn)演練
這篇文章主要介紹了iOS App設(shè)計(jì)模式開(kāi)發(fā)之適配器模式的使用實(shí)例,示例代碼為傳統(tǒng)的Objective-C語(yǔ)言,需要的朋友可以參考下2016-03-03簡(jiǎn)介Objective-C解析XML與JSON數(shù)據(jù)格式的方法
這篇文章主要介紹了Objective-C解析XML與JSON數(shù)據(jù)格式的方法,文中解析JSON包括拼接JSON字符串用到了SBJson這個(gè)解析器,需要的朋友可以參考下2016-01-01iOS整個(gè)APP實(shí)現(xiàn)灰色主題的示例代碼
這篇文章主要介紹了iOS整個(gè)APP實(shí)現(xiàn)灰色主題的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02查看iOS已上架App的Crash信息定位、應(yīng)對(duì)處理方式的實(shí)例
下面小編就為大家?guī)?lái)一篇查看iOS已上架App的Crash信息定位、應(yīng)對(duì)處理方式的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12iOS實(shí)現(xiàn)從通訊錄中選擇聯(lián)系人
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)從通訊錄中選擇聯(lián)系人,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08IOS 出現(xiàn)錯(cuò)誤reason: image not found的解決方案
這篇文章主要介紹了IOS 出現(xiàn)錯(cuò)誤reason: image not found的解決方案的相關(guān)資料,需要的朋友可以參考下2017-05-05ios 單利的完整使用實(shí)例 及銷(xiāo)毀 宏定義
下面小編就為大家分享一篇ios 單利的完整使用實(shí)例 及銷(xiāo)毀 宏定義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01詳解Swift 利用Opration和OprationQueue來(lái)下載網(wǎng)絡(luò)圖片
這篇文章主要介紹了詳解Swift 利用Opration和OprationQueue來(lái)下載網(wǎng)絡(luò)圖片的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-09-09