iOS 讓自己的工具支持CocoaPods

前言

作為一個iOS開發者,一定使用過CocoaPods吧。如果還不熟悉的小伙伴可以參考一下CocoaPods安裝和使用教程CocoaPods 作為OS XiOS 開發平臺的類庫管理工具,已經非常完善和強大。通常我們用CocoaPods來管理第三方開源類庫,但是我們也極有可能會開發一些常用工具或靜態類庫供他人使用。

近期由于公司對項目管理的規劃,需要使用CocoaPods做三方庫版本依賴管理,因此研究學習下了創建Pods依賴庫??嘤诰W絡查找的資料太多,有些并不適合自己這種小學生(大神們太基礎的并未記錄),所以有了本文。下面進入正片部分:

正文

1.創建自己的GitHub倉庫

CocoaPods是托管在GitHub上的,所有的Pods也是托管在GitHub上,所以我們首先需要創建一個屬于自己的GitHub倉庫。

創建GitHub倉庫有兩種方式:

1.通過GitHub網站登錄賬號后創建倉庫,如圖:

2.通過GitHub的客戶端“GitHub Desktop”來創建,如圖:

關于創建倉庫做一個簡單說明:

(1)Initialize: 是否默認創建一個 README 文檔,一個完整的庫都會有這個說明文檔,這里最好勾選一下。不過如果忘記的話也不要緊,后面手動創建也是可以的。

(2).gitignore: 忽略項文件,記錄一些想忽略的文件類型,凡是該文件包含的文件類型, git 都不會將其納入到版本管理中??葱枰x擇就行。

(3)license: 正規的倉庫都有一個 license 文件, Pods 依賴庫對這個文件要求比較嚴格,需要有這個文件。這里最好讓 github 自動創建一個,不過后續手動創建也行。我們這次先使用 MIT 類型的 license。

上面各項根據大家需要填寫完畢后,點擊 Create repository 按鈕即可,創建成功后如下所示:

2.Clone倉庫到本地

為了方便向倉庫中刪減內容,需要將倉庫 clone 到本地,這里有多種操作方式,可以選擇你喜歡的一種。clone到本地后,目錄結構如圖(后續操作都在該目錄下進行)


3.向本地倉庫中添加創建 Pods 依賴庫所需的文件

(1)主類文件

創建 Pods 依賴庫就是為了方便別人使用我們的成果,比如我想共享給大家的HZWaitView類,那這個類自然必不可少,我們把這個類放入一個 HZWaitView 的目錄中:

(2)Demo工程

為了快速教會別人使用我們的 Pods 依賴庫,通常需要提供一個 demo 工程:

(3)README.md

使用 github 的人應該都熟悉這個文件,它是一個成功的 github 倉庫必不可少的一部分,使用 markdown 對倉庫進行詳細說明。

(4)LICENSE 文件

CocoaPods 強制要求所有的 Pods 依賴庫都必須有 license 文件,否則驗證不會通過。

(5).podspec 文件

每個 Pods 依賴庫必須有且僅有一個名稱和依賴庫名保持一致,后綴名為 .podspec 的描述文件。

創建這個文件有兩種方法:

1.復制已有的 podspec 文件然后修改對應的參數。

2.執行命令行創建。

我們使用命令行創建,先cd到本地倉庫目錄,然后終端輸入命令:pod spec create HZWaitView?

創建成功后終端顯示如下:

本地倉庫目錄結構如下:

文件都準備好后提交到GitHub,并打上tag~‘v0.0.1’(注意版本前面的’v‘要加上,不然后面有坑)

4.修改.podspec文件

創建出HZWaitView.podspec文件后(可以使用sublime或文本編輯打開),我們打開可以發現該文件為ruby文件。里面有很多內容,我們只需要根據需要做相應修改。

Pod::Spec.new do |s|

s.name? ? ? ? = "HZWaitView"? //名字,一般和podspec文件名保持一致

s.version? ? ? = "0.0.1" //版本號 這個版本號需要和剛才提交GitHub的tag值一樣,并且不用加上'v'

s.summary? ? ? = "Wait view when waiting" //描述,這個隨便自己怎么寫

s.description? = <<-DESC

This just a wait view when waiting? //這個隨便,可以不寫

DESC

s.homepage? ? = "https://github.com/PamelaChen1/HZWaitView" //項目主頁,一般是GitHub的鏈接地址

s.license? ? ? = "MIT"

s.author? ? ? ? ? ? = { "yc" => "805507174@qq.com" }

s.platform? ? = :ios, "7.0"? //支持的平臺和版本,這個一定要填

s.source? ? ? = { :git => "https://github.com/PamelaChen1/HZWaitView.git", :tag => "v#{s.version}" }

s.source_files? = "HZWaitView/**/*.{h,m}"http://這里的路徑自己填上去 按照層級寫就行了

s.frameworks = "UIKit", "Foundation"

s.requires_arc = true //是否支持ARC

end

5.驗證.podspec文件

編輯完podspec文件后需要驗證一下這個文件是否可用podspec文件不允許有任何的Warning或者Error,執行命令:pod spec lint HZWaitView.podspec ?驗證通過如下:

如果驗證未通過只存在warning不存在Error的情況,可使用命令:pod lib lint --allow-warning 再次驗證。

6.提交.podspec文件

經過前面的步驟,我們的 CocoaPods 依賴庫就已經準備好了,但是現在你還不能在你的工程中使用它。如果你想讓它成為一個真正可用的依賴庫,還需要最后一步操作:將剛才生產的 podspec 文件提交到 官方的 CocoaPods Specs 中。

沒錯,我們平時用的能用 pod search 搜到的依賴庫都會把它上傳到這個倉庫中, 也就是說只有將我們的 podspec 文件上傳到這里,才能成為一個真正的依賴庫,別人才能用!

提交.podspec文件需要先注冊一個cocoapods賬號,可以使用命令:

pod trunk register xxxx@qq.com 'Pamela' --description='macbook air'

注冊完成后可以使用命令:pod trunk me 來查看注冊情況,如下圖

賬號注冊完成后我們只需要使用命令:pod trunk push HZWaitView.podspec 提交該文件,下面只需要等待就可以了。經過漫長的等待,終于看到結果

大家看到這個是不是非常激動呢。

當我們嘗試搜索依賴庫時,發現

這時內心時崩潰的。遇到這個問題的解決方法就是Finder前往資源庫(~/Library/Caches/CocoaPods)去刪除緩存中的search_index.json,然后再pod search一次就可以了。最終結果

7.私有庫的搭建

1.創建代碼倉庫并克隆到本地,本地文件目錄結構如下圖:


2.使用終端命令,上傳代碼到git倉庫,命令如下:

cd ~/.HZBankWebContainer?

git init

git add .

git commit -m "first commit"

git remote add origin XXXXXX ?(XXXXX為倉庫地址)

git push -u origin master

3.創建podspec文件倉庫并克隆到本地,本地spec文件目錄如下圖:


4.上傳spec文件至git倉庫,命令與代碼上傳一致

5.進入代碼倉庫,創建分支,終端命令如下:

git checkout -b 1.0.0 ?//檢出brunch分支

git push origin 1.0.0 ?//推送分枝

6.完成以上操作后就可以使用cocoapods來管理類庫了,如果使用私有庫中有依賴于其他三方開源庫的,需要連內網通過代理訪問外網。命令如下:

git config --global http.proxy "http://192.68.70.62:3128" ?//設置代理服務器地址訪問git

git config --global https.proxy "http://192.68.70.62:3128"

git config --global --get-all http.proxy ? //獲取代理信息

git config --global --unset http.proxy

git config --global --unset https.proxy ? //重置代理

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容