? ? ? 在做一些ios項(xiàng)目開(kāi)發(fā)的時(shí)候,我們的很多項(xiàng)目中可能用到了一些公用的模塊诈胜,我們一直在這些項(xiàng)目中來(lái)回copy,paste冯事,非常的不方便焦匈,有的時(shí)候這些模塊有一些修改,我們?cè)谑褂玫臅r(shí)候都不知道要去哪個(gè)項(xiàng)目中copy昵仅。這個(gè)時(shí)候我們可以使用自定義的CocoaPods庫(kù)來(lái)封裝這些模塊缓熟,這樣我們?cè)谑褂玫臅r(shí)候只需要使用cocoPods去導(dǎo)入這個(gè)模塊就可以了,這樣既減少了我們的工作量摔笤,也能很好的去管理修改我們的模塊够滑。下面就來(lái)講解怎么去創(chuàng)建一個(gè)自定義的CocoaPods庫(kù)。
第一步:登錄github(如果沒(méi)有賬號(hào)自己去創(chuàng)建一個(gè))
第二步:我們?cè)趃ithub上創(chuàng)建一個(gè)倉(cāng)庫(kù)(注:公有的私有的都可以吕世,區(qū)別在于公有的能被所有人看到彰触,私有的只能被指定的人看到)
如圖1-1所示,勾選README命辖,并且選擇Objective-C 渴析,license選擇MIT License晚伙,點(diǎn)擊創(chuàng)建即可
第三步:打開(kāi)終端,cd到桌面(cd到你想要的路徑下都可以)俭茧,執(zhí)行g(shù)it clone '倉(cāng)庫(kù)地址',就會(huì)把我們剛才創(chuàng)建的倉(cāng)庫(kù)clone到本地
第四步:在剛才clone下來(lái)的主目錄下創(chuàng)建一個(gè)新的文件夾,命名為Classes(名字可以自己定義)漓帚,用來(lái)存放我們需要封裝的一些代碼文件或者資源文件母债,我們這里以一個(gè).h文件為例
第五步:創(chuàng)建.podspec文件。再次打開(kāi)終端尝抖,cd到剛才clone下來(lái)的文件夾的根目錄下執(zhí)行 'pod spec create TestRepository',就會(huì)在根目錄下生成一共TestRepository.podspec文件毡们。這個(gè)命名可以自己定義(注意:這個(gè)文件名就是我們之后通過(guò)cocoaPods導(dǎo)入的庫(kù)名)
這個(gè)時(shí)候我們剛才的主文件夾的目錄如下:
第六步:編輯.podspec文件,如圖所示:
這是.podspec文件最基本的格式。
name:倉(cāng)庫(kù)名稱(chēng)昧辽,與.podspec文件名保持一致
version:倉(cāng)庫(kù)版本號(hào)
summary:倉(cāng)庫(kù)描述
homepage:倉(cāng)庫(kù)的主頁(yè)地址
license:pod庫(kù)許可證的類(lèi)型
author:可以填寫(xiě)倉(cāng)庫(kù)創(chuàng)建者的一些相關(guān)信息
platform:支持的平臺(tái)
deployment_target:支持的最低系統(tǒng)版本
source:固定格式衙熔,把倉(cāng)庫(kù)的地址復(fù)制進(jìn)去就可以了
source_files:資源文件(我們這里只有一個(gè).h文件可以寫(xiě)的比較簡(jiǎn)單。如果有復(fù)雜的目錄結(jié)構(gòu)和多個(gè)或者多種類(lèi)型的資源文件可以參考官方文檔:CocoaPods Guides - Podspec Syntax Reference)
第七步:將整個(gè)文件夾修改的內(nèi)容提交到github上(git 語(yǔ)句不熟悉的可以自行百度)
第八步:創(chuàng)建tag ,在終端cd到剛才的根目錄下搅荞,分別執(zhí)行g(shù)it語(yǔ)句
git tag 0.0.1(這里的0.0.1版本號(hào)需要與.podspec文件中寫(xiě)的版本號(hào)保持一致)
git push --tags?
第九步:版本號(hào)提交成功以后就可以進(jìn)行驗(yàn)證了cd到根目錄
本地驗(yàn)證:pod lib lint --allow-warnings --sources='https://github.com/CocoaPods/Specs.git'
遠(yuǎn)程驗(yàn)證:pod spec lint --allow-warnings --sources='https://github.com/CocoaPods/Specs.git'
--allow-warnings:允許警告存在红氯,如果在驗(yàn)證的時(shí)候因?yàn)榫娑怀晒Γ梢蕴砑?-allow-warnings來(lái)驗(yàn)證(注意:有些file not found的警告是因?yàn)閜odspec文件配置錯(cuò)誤而造成的咕痛,需要修改podspec文件內(nèi)容痢甘,并不能直接忽略)
--sources='https://github.com/CocoaPods/Specs.git' :指定下載源,如果我們自定義庫(kù)引用了其他第三方的庫(kù)茉贡,則需要再.podspec文件中添加依賴塞栅,驗(yàn)證的時(shí)候可能會(huì)報(bào)錯(cuò),我們?cè)隍?yàn)證的時(shí)候指定一下下載源就可以了(如果沒(méi)有引用其他第三方庫(kù)或者直接驗(yàn)證的時(shí)候不報(bào)錯(cuò)腔丧,就可以不添加這個(gè))
驗(yàn)證成功如下圖:
第十步:上傳到CocoaPods中放椰,因?yàn)閯偛盼覀儎?chuàng)建的是公有庫(kù),我們則需要?jiǎng)?chuàng)建或者登陸trunk號(hào)
終端執(zhí)行:pod trunk me 檢測(cè)是否登錄,如果有則會(huì)顯示trunk號(hào)的信息愉粤,如果沒(méi)有則需要?jiǎng)?chuàng)建
終端執(zhí)行:pod trunk register?郵箱名 用戶名 --description='描述'? ?創(chuàng)建完畢之后可以提交了
終端執(zhí)行:pod trunk push TestRepository.podspec --allow-warnings 成功如下圖:
這個(gè)時(shí)候我們的自定義庫(kù)就創(chuàng)建完畢了砾医,本地更新pod repo update,然后就可以在項(xiàng)目中導(dǎo)入了
如果我們剛才創(chuàng)建的是私有庫(kù),提交方式與公有庫(kù)不同
1.cd到根目錄科汗,終端執(zhí)行 "pod repo add TestRepository 倉(cāng)庫(kù)地址 "這個(gè)TestRepository可以自己命名,這個(gè)只需要執(zhí)行一次藻烤,以后升級(jí)版本庫(kù)的時(shí)候不需要在執(zhí)行這一步操作,當(dāng)然头滔,如果本地的被刪除了則需要重新再執(zhí)行一次(可在? ?/用戶/電腦名/.cocoapods/repos? ?這個(gè)路徑下查看剛才添加的文件夾)
2提交怖亭,終端執(zhí)行 "pod repo push TestRepository TestRepository.podspec --allow-warnings"第一個(gè)TestRepository是上一步創(chuàng)建的文件夾名,第二個(gè)TestRepository是.podspec文件名
成功之后更新本地倉(cāng)庫(kù)pod repo update然后就可以在項(xiàng)目中使用了,需要注意的是,私有倉(cāng)庫(kù)在導(dǎo)入到項(xiàng)目的時(shí)候需要再Podfile文件中添加 "source '倉(cāng)庫(kù)地址'"