前言
作為一個iOS開發者,一定使用過CocoaPods吧。如果還不熟悉的小伙伴可以參考一下CocoaPods安裝和使用教程。CocoaPods 作為OS X和iOS 開發平臺的類庫管理工具,已經非常完善和強大。通常我們用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 ? //重置代理