iOS安裝CocoaPods私有庫詳細(xì)過程 按此教程讓你一遍就過 跳過各種坑?。?!

*****************************注:之前網(wǎng)上參考各種文章,不是這里有問題就是那里報錯,最后終于搞定,記錄一下過程,讓看到的少走點坑***************************


一.iOS組件化本地操作**非上傳git版本**( 上傳git版本看第二部分 第一部分必看)

新建工程SXShellTest(名字寫你要創(chuàng)建的工程名字 這里我以SXShellTest為例講解)作為殼工程 ?

首先打開命令行工具

1、添加Podfile文件?

? ? cd到你剛創(chuàng)建的工程目錄下 以SXShellTest為例 打開終端 輸入 cd 把目標(biāo)文件夾拖進(jìn)來

? ? 回車后執(zhí)行 pod init ?這時候就生成了podfile文件

2、生成xcworkspace 執(zhí)行 pod install ?然后在此項目中創(chuàng)建一個文件夾 我這邊以lib為列

3、在lib文件夾下創(chuàng)建組件工程 我這邊以(WKWebTest--*是你自定義的一個工程名字,也就是你的其中一個組件或者業(yè)務(wù)模塊*)為例 ?執(zhí)行?pod lib create WKWebTest ? ?執(zhí)行后會出現(xiàn)填寫信息頁面 按下面內(nèi)容填寫

打開新建工程WKWebTest->WKWebTest->Classes,有個ReplaceMe的文件,意思就是要替換它,換成我們自己需要對外提供的類 這里我已經(jīng)替換了 替換后刪除ReplaceMe文件。

?想把剛才加入的類加到pods里面 需要 cd到lib/WKWebTest/Example/(一定是這個目錄下)文件目錄下,執(zhí)行 pod install?? 這個時候在Development Pods文件下會多出這四個文件,這就是本地開發(fā)的pods文件
至此一個本地組件就創(chuàng)建好了 如何使用它呢 下面講殼工程怎么使用組件

4、殼工程使用本地組件庫(WKWebTest ),修改殼工程(SXShellTest)項目中的Podfile文件,增加 pod 'WKWebTest', :path => 'Lib/WKWebTest'

在殼工程(SXShellTest)的Podfile中 添加組件工程(WKWebTest)的路徑

cd到殼工程SXShellTest目錄下 執(zhí)行pod install?

這樣殼工程就pod到本地組件庫的內(nèi)容了,原理跟使用平時的第三方遠(yuǎn)程庫一樣。只不過這次使用的是本地的。本地的pod放在了Development Pods? 文件夾里面,這個文件夾里的內(nèi)容其實是可以修改的,修改后立刻生效,會比遠(yuǎn)程pod需要提交版本號,本地再pod對應(yīng)的版本號方便得多。

二.iOS組件化創(chuàng)建私有庫(上傳git版本)**還是以上面創(chuàng)建的項目為列**

1、創(chuàng)建類似于CocoaPods的master ,所有的私有庫組件都放在這個里面

這個是所有的組件都放在這個上面類似于master

2、在終端中創(chuàng)建一個本地私有庫,在終端中輸入: pod repo add 需要創(chuàng)建的庫名字 這里我以xxxxxxs為列

pod repo add xxxxxxs 后在repos出現(xiàn)xxxxxxs文件夾 。不知道怎么查看的話 在文件夾選項中的前往文件夾 輸入~/.cocoapods/repos

然后和 github上剛才創(chuàng)建的關(guān)聯(lián) pod repo add xxxxxxs?https://github.com/你自己的賬號/xxxxxxs.git?(這個https是剛才創(chuàng)建的git地址)

至此一個包含所有組件庫的git創(chuàng)建好了?

接下來是向這個git中添加組件 想要添加那必須要先創(chuàng)建一個組件

3、創(chuàng)建一個新的組件 --在git上創(chuàng)建一個new repository ? ?寫上將要用的組件名字 (這個組件以上面創(chuàng)建的本地組件為列)

2、***注:執(zhí)行這步時候WKWebTest組件已經(jīng)在本地創(chuàng)建好了(如何創(chuàng)建:參照第一部分 這里就不再重復(fù)寫了)****?

cd到組件工程WKWebTest目錄下 執(zhí)行下面操作

還是剛剛創(chuàng)建的那個本地組件庫

第一次關(guān)聯(lián)git

git init? 初始化git

git add .?

git commit -m"init project" ? 提交初始化工程

git remote add origin https:你剛才創(chuàng)建的git地址 ? 讓這個工程和剛才在Github上創(chuàng)建的Repository關(guān)聯(lián)

git push origin master -f ? ?強(qiáng)制提交上去?

git tag 0.1.0 ? ? ? (版本號 第一次上傳)以后每次修改上傳都要迭代版本 (這個版本號就是類似第三方庫中AFNetworking控件的版本號)

git push --tags

刷新github 這時候已經(jīng)看到把代碼都傳到git上了 在releases里面就能看到版本號為0.1.0


3、這部比較關(guān)鍵 就是要把WKWebTest 組件的***索引文件(什么是索引文件:.podspec文件)***添加到之前創(chuàng)建的那個xxxxxxs(這個就是包含所有組件)

還是cd到組件工程WKWebTest目錄下

pod repo push <本地索引庫> <索引文件名> --allow-warnings 把git上的組件.podspec下載到本地索引庫中

例:pod repo push xxxxxxs WKWebTest.podspec --allow-warnings

打開~/.cocoapods/repos 文件夾 就會看到xxxxxxs文件夾已經(jīng)有WKWebTest組件庫了 后面跟的就是組件庫的各個版本

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?************************************ffffffs是我創(chuàng)建的第二個組件庫 ************************************

添加方法和第一個一樣 這里展示一下 xxxxxxs就是類似于master 里面有多個組件 每個組件有自己的版本

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 打開github就會看到已經(jīng)上傳到git 上了 也就是本地和github上同時已經(jīng)有了

已經(jīng)上傳成功

?如果再創(chuàng)建第二個組件的話 和創(chuàng)建第一個的方法一樣 上圖中 ffffffs就是第二個組件 所有的組件的(.podspec文件)都放在xxxxxxs中

4、殼工程怎么使用這些組件 還以第一步創(chuàng)建的 殼工程SXShellTest為例

? ? ? ·在殼工程的podfile文件中 添加source:組件在git上的地址

? ? ? ·然后把本地路徑改成從索引庫中獲取的方式pod 'WKWebTest','0.8.0' --->(0.8.0 是這個組件的版本)

? ? ? ·版本號根據(jù)你自己的需要獲取本地索引庫中已經(jīng)有的版本 類似于master里面的AFNetworking有各種不同的版本 用哪個寫哪個

之前的是本地路徑path=>'lib/WKWebTest' 現(xiàn)在修改成你需要的tag版本

?cd到殼工程SXShellTest目錄下 執(zhí)行pod install 這樣組件就到殼工程了

三.iOS組件 某個組件更新 還以WKWebTest這個組件為例

打開工程WKWebTest->WKWebTest->Classes,?只要組件中classes 添加了文件 或者文件中的代碼修改了?

?都需要 cd到lib/WKWebTest/Example/(一定是這個目錄下)文件目錄下,執(zhí)行 pod install ? ??

1、然后再cd 到WKWebTest 目錄下 (因為是修改或者添加文件所以git時候不像第一次上傳那樣了)

? ? ? git add .

? ? ? git commit -m '注釋'

? ? ? git push origin master -f

? ? ? git tag -a '新版本號' -m '注釋' // 注意這里 只要是修改了需要重新打一個版本號

? ? ? git push --tags

? ? ? 然后打開WKWebTest文件夾 修改s.version 這個版本就是剛才你(git tag -a)的新版本號?

修改s.version

最后:pod repo push?xxxxxxs?WKWebTest.podspec --allow-warnings (這時候就把修改過內(nèi)容的版本 傳到了xxxxxxs中)打開~/.cocoapods/repos 文件夾 就會看到xxxxxxs文件夾中的WKWebTest組件庫里面的版本多了一個

每次修改都要打tag

2、殼工程中如何使用修改過的組件 ?

修改殼工程的podfile文件中的組件版本號

這里你用到哪個版本的組件 就寫相應(yīng)的版本號 比如剛才修改過的新版本 就寫上相應(yīng)的版本號

?cd到殼工程SXShellTest目錄下 執(zhí)行pod install 這樣組件中修改的內(nèi)容 就更新到了殼工程中了

四.總結(jié)

實施起來比較繁瑣,步驟比較多也是容易出錯的關(guān)鍵 其實想明白的話操作也挺容易

組件化固然不錯 但是比較適合中大型項目 還是要根據(jù)自己的項目實施 ?

本文時間倉促,也參考了別人的文章(看的比較多鏈接也沒留存,望見諒)可能有些地方敘述不到位和不合理或理解錯誤,望各位指正,共同進(jìn)步!?。。。。。。。。。。。。。。。。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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