溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

發(fā)布時(shí)間:2020-08-22 04:42:32 來源:腳本之家 閱讀:349 作者:海邊的1984_ 欄目:移動開發(fā)

前言

本文主要給大家介紹了關(guān)于iOS利用Target區(qū)分開發(fā)環(huán)境的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。

什么是區(qū)分開發(fā)環(huán)境:

請求的域名+第三方SDK賬號的不同。

  • 請求的域名-->因?yàn)殚_發(fā)環(huán)境和正式環(huán)境的服務(wù)器和數(shù)據(jù)庫基本上都不是同一個(gè)。
  • 第三方SDK賬號-->第三方SDK需要賬號區(qū)分防止開發(fā)測試數(shù)據(jù)污染正式環(huán)境
    (推送+友盟統(tǒng)計(jì)是最明顯的例子)

這篇文章要點(diǎn):

  • 如何使用Target去區(qū)分開發(fā)環(huán)境
  • 如何在1的基礎(chǔ)上面巧妙的區(qū)分第三方SDK的賬號

最終目的

在打包的時(shí)候切換對應(yīng)環(huán)境的Target進(jìn)行編譯即可獲得對應(yīng)的安裝包。

引子:

開發(fā)APP區(qū)分環(huán)境是必不可少的話題,從 開發(fā)測試環(huán)境->pr環(huán)境->生產(chǎn)環(huán)境,甚至更多的環(huán)境,如何快速的進(jìn)行管理是一個(gè)值得探討的話題。

不少項(xiàng)目在這方面好像沒有一個(gè)很好的解決方案導(dǎo)致項(xiàng)目到后期的時(shí)候第三方SDK的混亂以及各個(gè)環(huán)境之間的相互污染。雖然很多SDK已經(jīng)提前給出了測試機(jī)的注冊等等方案,但是個(gè)人覺得還是比較麻煩。所以我們公司在很早的時(shí)候iOS小組一起討論出下面這種方案。已經(jīng)在我們公司的后期開發(fā)的多個(gè)APP進(jìn)行使用。

下面開始講講我們公司的解決方案吧(文章底部有Demo鏈接)

1.建立項(xiàng)目

2.將項(xiàng)目的target更改為dev環(huán)境的

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

3.建立管理第三方平臺的類目

這張有疑問不要緊,步驟完成后會詳細(xì)講解

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

4.建立APPStore環(huán)境下對應(yīng)的Target

在開發(fā)環(huán)境的Target上面右鍵Duplicate一個(gè)新的Target,并且修改Target名稱為CBTDisTingGuishAppStoreEnvironment

5.修改Plist文件,對應(yīng)上正確的Target

這時(shí)候你會看到多生成了一個(gè)Plist文件,不同的Target的Plist文件不共享我們需要修改這個(gè)Plist的對應(yīng)關(guān)系以及名字。在修改plist名字的時(shí)候你會發(fā)現(xiàn)Target下面的對應(yīng)的plist都空了,這時(shí)候就可以選擇對應(yīng)的plist文件了。

下面是新建好對應(yīng)關(guān)系的Target和Plist文件

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

6.ManagerScheme

修改對應(yīng)的scheme名字,用于更好的辨認(rèn)APP環(huán)境

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

7.上面步驟完成之后,打包之用切換Target進(jìn)行編譯即可獲取對應(yīng)環(huán)境的APP

(demo里面切換環(huán)境運(yùn)行打印,你會發(fā)現(xiàn)得到的是不同的結(jié)果)

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

這里來解釋一下這個(gè)方案的核心

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

文件

      a.分別定義兩個(gè)環(huán)境的BundleID對應(yīng)的宏

      b.定義了一個(gè)能夠在不同環(huán)境下面獲取到對應(yīng)環(huán)境BundleID的宏

      c.定義根據(jù)不同環(huán)境區(qū)分不同的請求地址

      d.定義根據(jù)不同環(huán)境區(qū)分不同的sdk區(qū)域

用法:

kGetuiConfig[kBundleID][@"AppID"]

假設(shè)現(xiàn)在APP環(huán)境處于測試環(huán)境

kGetuiConfig是一個(gè)字典

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

kGetuiConfig[kBundleID] 是如圖字典

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

kGetuiConfig[kBundleID][@"AppID"]--> ebCsh9J11111111GhSZ9Hb5

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

如果你覺得有點(diǎn)繞是正常的,多看兩遍就知道了。

踩過的坑和注意點(diǎn)

1、第三方SDK去注冊賬號需要區(qū)分BundleID的時(shí)候,這時(shí)候一定需要創(chuàng)建兩個(gè)賬號(n個(gè)環(huán)境n個(gè)賬號),其他不需要區(qū)分BundleID的,盡量創(chuàng)建兩個(gè)賬號,這樣區(qū)分環(huán)境才有意義。

2、不同Target必須要對應(yīng)不同的Plist,需要進(jìn)行配置,如果實(shí)在搞不清楚,就刪除所有的Plist,然后重新添加,這樣Target上面對應(yīng)的pilst為空的時(shí)候就能進(jìn)行選擇配置。

3、添加新類的的時(shí)候記得勾選上兩個(gè)Target

iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解

4、Target進(jìn)行Duplicate的時(shí)候會復(fù)制所有的代碼。但是plist不共享。

源碼下載:

github下載地址:點(diǎn)擊這里

本地下載地址:http://xiazai.jb51.net/201712/yuanma/CBTDisTingGuishDevEnvironment(jb51.net).rar

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI