【SDK】SDK的開發(fā)與調(diào)試項目配置

?寫在前面

最近在開發(fā)SDK,然后發(fā)現(xiàn)這里面的學問大著呢。在開發(fā)SDK的時候,先得構(gòu)想一下,作為開發(fā)者,怎么做才能開發(fā)方便,調(diào)試方便,導出SDK方便。

  • 你需要了解的知識點:
    項目targets.jpeg

    上圖中project就一個,沒啥好說的但是targets就比較花里胡哨了
    我剛開始接到這個項目是懵逼的,因為沒有文檔講這些個target是干啥的,之間有啥關(guān)系。每target里需要的配置項有哪些。后來自己慢慢摸索才有了下面這一段的理解。至于為啥會有這些個target,其實稍微大點的項目,有了CI了之后,都會有8個左右的target。其目的就是為了打出不同的包(不同的編譯選項)
  1. 第一個圖標,就有點像靶子的那個紅色圈圈的。這個是本文中提到的aggregate產(chǎn)生的,可以簡單的理解為一個腳本,而這個腳本可以編譯后面三個target里面的東西。
  2. 第二個圖標,黃色的手提包。這個就是正常的framework產(chǎn)生的主target,可以理解為我們平時直接創(chuàng)建的APP項目里的那個主target(就是下圖中的那個鉛筆和尺子搭出的“A”圖標)


    主target
  3. 第三個圖標,一般都是test相關(guān)生成的,我目前沒有關(guān)注。
  4. 第四個圖標,像個房子一樣的,這個是類似于framework的,在addTarget-->cross platfrom這一步就可以看到。

?初步方案

  • 分別是不同的工程,SDK是一個項目,調(diào)試查看SDK效果的代碼又是一個項目,這樣就和我們平時用別人的項目一樣。

優(yōu)點,工程之間完全隔離。業(yè)務代碼和SDK沒有任何關(guān)系、

缺點,每次修改了SDK里的代碼后,調(diào)試成本變高了,要不停的導出framework然后放到Demo工程里看效果,且不能直接debug

  • 基于上面的缺點,就有這個方法。如果可以在demo工程里直接調(diào)用SDK項目最新生成的framework多好啊。

優(yōu)點,解決了上面說的缺點

缺點,由于是兩個項目,在CI的時候,肯定是分兩個Git倉庫管理的,于是兩個項目對應的Git一定要配置好,不然提交代碼的時候頭大,夠吃一壺了

?基于第二點方案,我們操作起來。

參看了iOS項目中SDK的開發(fā)與調(diào)試
這一篇,這里主要講的是新增的方式。我是由于已經(jīng)有了兩個項目,分別是SDK的工程和demo的工程,所以這里主要記錄怎么樣把兩個分開的工程整合到一個項目里,然后方便我們SDK的開發(fā)和調(diào)試

  1. 創(chuàng)建文件夾,里面創(chuàng)建xcworkspace文件,然后把SDK項目和demo項目拷貝到一起。如下圖這樣。

  2. 下一步把這兩個目錄里的xcproject文件直接拖到xcode打開的xcworkspace里,結(jié)果如下圖


    屏幕快照 2019-10-16 下午8.43.46.png
  1. 編譯,沒有問題就OK了,至此就是兩個都加進來后,后面就是demo工程怎么引用SDK工程產(chǎn)出的framework了,這一點可以參考上面的那個帖子。

  2. 兩個項目建立好關(guān)聯(lián)后,應該是下面這個樣子的(最后能運行的樣子)


    WechatIMG5600.jpeg

可以看到目錄里有兩個一樣的framework,第一個是我們期望的把兩個項目關(guān)聯(lián)起來的那個動態(tài)庫,第二個是我們通過addTarget-->cross platfrom -->aggregate和腳本的方式生成的??梢赃\行demo后分別對這兩個framework文件 showInFinder 看文件的修改日期,就可以看到哪個是最新的framework,然后說明我們的修改有沒有生效。

WeChat22745993f981808c7081b7369531af4f.png

上圖中,箭頭所指的那個framework的路徑應該就是前面我們腳本輸出的目標路徑。前后驗證了,搞定,哈哈

總結(jié)

  1. 其中我遇到了一個問題,就是在修改了SDK的對外暴露的頭文件的時候,不知道為啥,framework里新增的頭文件不會出現(xiàn)在framework里的header文件夾里了。最后我是通過shift+command+option+k快捷鍵清理了下,然后就好了
  1. 為了確保demo工程里使用的framework是直接指向SDK產(chǎn)出framework目錄,自己多操作下就知道了,哈哈哈哈
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • 公司最近要開發(fā)一個SDK,不知如何下手,請教了一個有SDK開發(fā)經(jīng)驗的同事,也在網(wǎng)上查了些資料,決定整理一下。整體上...
    小寶二代閱讀 7,312評論 34 44
  • 這兩天腰疼,頭也有時候是暈的,好像又要回到以往剛回長春的感覺,這是啥毛病呢,心理作用還是真的有實病呢?
    長春康輝旅行社閱讀 122評論 0 0
  • 剛才孩子在客廳,孩兒他爸輔導孩子挑戰(zhàn)數(shù)學描紅100以內(nèi)的加減法。我獨自躲在房間,給自己一段時間獨處。不多,也許十分...
    carolzhj閱讀 90評論 1 1
  • 作者:史遇春 人類是群體生活的物種。 有群體,一般就會有分工。 分工,按照素樸的觀念理解,只是職能的差別,而非等級...
    塵境心影錄閱讀 1,001評論 0 5
  • 今天想法與思路,基本上被我空閑時候想完了,全演示過了。就只有寫這些隨意冒出來的想法吧。 小豆豆,明天半夜大概就會送...
    簡單人D閱讀 224評論 2 2

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